1、列表
(1)创建列表:li = [1,2,3,4]
(2)列表中可以嵌套任意字符
li = [1,2,"age",[123,["蛋糕","asdf"],"lalala"],True]
print(li[3][1][0])
#输出结果:蛋糕
(3)列表可以被修改,可以通过切片对列表进行修改删除操作
li = [1,2,"age",[123,["蛋糕","asdf"],"lalala"],True]
li[0:2] = [["a",666],"test1"]
print(li)
(4)列表可以进行for循环
(5)列表和字符串一样,可以使用in判断元素是否在内
(6)获取列表中的具体数值
li = [134,"ssffg","gegt",["fjhgh",90,99],90,True]
v = li[3][0][1]
print(v)
#输出结果:j
(7)字符串可以直接转换成列表,数字不可以。
解释:遍历列表相当于内部进行for循环,因为数字不可以进行for循环。
(8)列表转换成字符串,需要自己写for循环一个一个处理。
li = [1,2,3,666,"888","alex"]
s = ""
for i in li:
s = s + str(i)
print(s)
#输出结果:123666888alex
(9)只有字符串的列表转换成字符串的时候,可以用join
li = ["123","alex"]
v = "".join(li)
print(v)
#输出结果:123alex
2、列表的魔法
list和str一样,ctrl点击就可以查看其魔法。和字符串不同的是,列表可修改。
(1)append()——魔法:后面可追加列表、数字、字符串。但是每次最后只能跟一个参数,否则会报错。
li = [11,22,33,44]
li.append("fjfh")
li.append([00])
li.append(12345)
print(li)
#输出结果:[11, 22, 33, 44, 'fjfh', [0], 12345]
(2)clear():魔法——清空列表,清空后返回[]
li = [11,22,33,44]
li.clear()
print(li)
#输出结果:[]
(3)copy():魔法——复制列表
li = [11,22,33,44]
v = li.copy()
print(v)
#输出结果:[11,22,33,44]
(4)count():魔法——计算元素出现的次数
(5)index():魔法——获取当前值索引的位置,最左边优先,找到第一个就不再找了
(6)insert(index,p_object):魔法——在指定索引的位置添加元素
li = [11,22,33,44]
li.insert(0,99)
print(li)
#输出结果:[99, 11, 22, 33, 44]
(7)pop():魔法——默认删除列表中最后一个值,删除后可以查看被删除的元素,还可以指定删除某个索引的值
默认删除最后一个:
li = [11,22,33,44]
v = li.pop()
print(li)
print(v)
#输出结果:
[11, 22, 33]
44
删除指定的索引位置
li = [11,22,33,44]
li.pop(0)
print(li)
#输出结果:[22, 33, 44]
(8)remove():魔法——)删除指定索引值
del也是删除 试试del li[0:3]
#remove删除
li = [11,22,33,44]
li.remove(li[0])
print(li)
#输出结果:[22, 33, 44]
#del删除
li = [11,22,33,44]
del li[0:3]
print(li)
#输出结果:[44]
(9)extend():魔法——扩展,字符串会分开显示出来
li = [11,22,33,44]
li.extend("今天是个好日子")
print(li)
#输出结果:[11, 22, 33, 44, '今', '天', '是', '个', '好', '日', '子']
(10)reverse():魔法——将当前列表进行反转,但是不可以赋值
li = ["123",66]
li.reverse()
print(li)
#输出结果:[66, '123']
#赋值报错
li = ["123",66]
v = li.reverse()
print(v)
#输出结果:None
(11)sort():魔法——排序,默认从大到小,sort(reverse=True)从小到大
#默认排序
li = [89,66,99,89,12,10]
li.sort()
print(li)
#输出结果:[10, 12, 66, 89, 89, 99]
从大到小排序
li = [89,66,99,89,12,10]
li.sort(reverse=True)
print(li)
#输出结果:[99, 89, 89, 66, 12, 10]
3、元组
**注意:**为了区分元组和方法,在创建元组时最后面加一个逗号,输出时逗号不会显示。
tu = (123,456,"dsrf","",)
print(tu)
#输出结果:(123, 456, 'dsrf', '')
(1)元组支持切片。
tu = (123,456,"dsrf","",)
print(tu[0:2])
#输出结果:(123, 456)
(2)元组的一级元素不可修改,但是如果元素包含列表,列表中的值可以修改。
tu = (123,456,"dsrf","",[(33,44)],True,)
tu[4][0] = 666
print(tu)
#输出结果:(123, 456, 'dsrf', '', [666], True)
(3)tuple只有两个方法,count()和index(),语法和上面一样
4、字典
(1)字典(dict)的创建规则:info = {“key”:“value”} ,里面职业名词称为键值对,值可以是任意内容,可以被修改的不能作为字典的key,例如列表,bool可以作为字典的key,其中True和1相同。列表中两个key值相同只保留一个,默认第一个。
#实例:
info ={
"age":"18",
"name":"小明",
"guoji":"China",
"li":[
11,
22,
33,
44,
[],
(),
{
"k1":"v1",
"k2":"v2",
"k3":"v3"
}
],
"test":(1,2,3,4)
}
print(info)
#输出结果:{'age': '18', 'name': '小明', 'guoji': 'China', 'li': [11, 22, 33, 44, [], (), {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}], 'test': (1, 2, 3, 4)}
(2)字典是无序的。
(3)字典可以根据索引找,不支持切片。
(4)字典可以进行for循环,默认输出key的值,还可以手动输出value的值,又可以key值和value值一起输出,还可以根据key值输出vaule的值。
#
默认输出为key值
info ={
"age":"18",
"name":"小明",
"guoji":"China",
}
for item in info:
print(item)
#输出结果:
age
name
guoji
#(2)手动输出key的值
info ={
"age":"18",
"name":"小明",
"guoji":"China",
}
for item in info.keys():
print(item)
#输出结果:
age
name
guoji
#(3)手动输出key和value的值——第一种方法
info ={
"age":"18",
"name":"小明",
"guoji":"China",
}
for item in info.keys():
print(item,info[item])
#输出结果:
age 18
name 小明
guoji China
#手动输出key和value的值——第二种方法
info ={
"age":"18",
"name":"小明",
"guoji":"China",
}
for k,v in info.items():
print(k,v)
#根据key值输出vaule的值
info ={
"age":"18",
"name":"小明",
"guoji":"China",
}
print(info["age"])
#输出结果:18
(5)fromkeys():魔法——创建字典,给key赋予统一的value值
x = {
"k1":"v1"
}
y = x.fromkeys(["k1","k2","k3"],"v666")
print(y)
#输出结果:{'k1': 'v666', 'k2': 'v666', 'k3': 'v666'}
(6)get():魔法——获取key对应的value值,当没有key时,输出None,当key不存在,且后面跟着value,会直接输出该value,如下
x = {
"k1":"v1"
}
y = x.get("k1")
z = x.get("hhh")
w = x.get("lll","fhsksgjgdf")
print(y)
print(z)
print(w)
#输出结果:
v1
None
fhsksgjgdf
(7)pop():魔法——删除字典中指定的值,可见删除元素
x = {
"k1":"v1",
"k2":"v2",
}
y = x.pop("k1")
print(x,y)
#输出结果:{'k2': 'v2'} v1
(8)popitem():魔法——默认删除最后一组键值对,()里不跟任何参数
x = {
"k1":"v1",
"k2":"v2",
"k3":"v3",
"k4":"v4",
}
y = x.popitem()
print(x,y)
#输出结果:{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} ('k4', 'v4')
(9)setdefault():魔法——设置键值对,如果字典中有,则不变,如果没有,则新建键值对,不输入value默认为None.
#key值已存在
x = {
"k1":"v1",
"k2":"v2",
}
y = x.setdefault("k1",666)
print(x,y)
#输出结果:{'k1': 'v1', 'k2': 'v2'} v1
#key值不存在
x = {
"k1":"v1",
"k2":"v2",
}
y = x.setdefault("kkk",666)
print(x,y)
#输出结果:{'k1': 'v1', 'k2': 'v2', 'kkk': 666} 666
(10)update():魔法——更新key的value值,如果key不存在,则创建新的。支持等于写法,如下。
#key值存在,则修改
x = {
"k1":"v1",
"k2":"v2",
}
x.update({"k1":666})
print(x)
#输出结果:{'k1': 666, 'k2': 'v2'}
#key值不存在,则创建
x = {
"k1":"v1",
"k2":"v2",
}
x.update({"k3":888})
print(x)
#输出结果:{'k1': 'v1', 'k2': 'v2', 'k3': 888}
#支持直接赋值
x = {
"k1":"v1",
"k2":"v2",
}
x.update(k1=123,k2=456,k3=888)
print(x)
#输出结果:{'k1': 123, 'k2': 456, 'k3': 888}
(11)dict.get()
为了防止字典里取值,该值不存在,尽量用dict.get()来代替dict[key]