列表
list:用中括号括起来,用“,”分割每个元素,列表中的元素可以是 数字、字符串、列表、布尔值......所有东西,可以说就是一个“集合”
li = [1,3,5,'alex','age',['sister',5],True]
列表是有序的
支持用索引、切片的方式取值
支持 for、while循环
列表元素是可以用索引、切片的方式进行修改和删除的
1 li = [1,3,5,'alex','age',['sister',5],True] 2 li[1] = 10 3 print(li) 4 li[4] = [1,2,3,4] 5 print(li) 6 del li[0] 7 print(li) 8 """ 9 [1, 10, 5, 'alex', 'age', ['sister', 5], True] 10 [1, 10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True] 11 [10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True] 12 """
索引取值支持嵌套方式
c = li[5][0][1] print(c) #i
in和not in:
判断某个东西是否包含在某个东西里面(判断元素是否在列表中),结果是布尔值
1 li = [1,3,5,'alex','age',['sister',5],True] 2 x = 1 in li 3 y = 'sister' in li 4 z = ['sister',5] in li 5 w = 'sister'and 5 in li 6 print(x,y,z,w) 7 #True False True True
和其他类的转换
字符串可以使用list()转换为列表,内部使用for循环,但数值不可以
列表转换为字符串的方式:
——写for 循环:既有字符串又有数字
1 li = [1,3,5,'alex','age',['sister',5],True] 2 s = "" 3 for i in li: 4 s += str(i) 5 print(s) 6 #135alexage['sister', 5]True
——用.join() :只有字符串
1 li = ['alex','age'] 2 s = "".join(li) 3 print(s) 4 #alexage
.clear()
给列表清空
.copy()
浅拷贝
.count()
计算元素出现的次数
x.append(c)
给x列表后追加c值
注意:c是参数,参数是调用函数时传入的变量
1 li = ['alex','age'] 2 v = li.append(["lala",124]) 3 print(v,li) 4 #None ['alex', 'age', ['lala', 124]]
.extend(iterable)
将可迭代对象iterable里的元素一个一个追加,扩展原来的列表,在内部执行for循环。iterable是可迭代对象
1 li = ['alex','age'] 2 li.extend(["lala",124]) 3 print(li) 4 li.extend("不得了") 5 print(li) 6 """ 7 ['alex', 'age', 'lala', 124] 8 ['alex', 'age', 'lala', 124, '不', '得', '了'] 9 """
.index()
根据值获取当前值的索引位置,最左侧优先
.insert(v1,v2)
在第v1位置插入v2
.pop(index)
删除列表中某个元素,默认删除最后一个,且删除的这个值可以获取
1 li = ['alex','age'] 2 v = li.pop() 3 print(li,v) 4 #['alex'] age
.remove()
删除列表中的指定值,且左边优先
.reverse()
将当前列表反转
.sort()
对当前列表排序
1 li = [11,44,22] 2 li.sort() 3 print(li) 4 #[11, 22, 44]
对当前列表降序排列
1 li = [11,44,22] 2 li.sort(reverse = True) 3 print(li) 4 #[44, 22, 11]
元组
tuple:是列表的一种加工,用“()”,一级元素不可被修改,不能增加或删除。
一般在创建元组时会在最后加一个“,”,以区分元组和列表
元组是有序的
1 tu = (11,44,22,["alex",2],True) 2 print(tu) 3 tu1 = (11,44,22,["alex",2],True,) 4 print(tu1) 5 """ 6 (11, 44, 22, ['alex', 2], True) 7 (11, 44, 22, ['alex', 2], True) 8 """
元组可以通过索引和切片取值
元组支持for循环和while循环,是可迭代对象
元组可以修改内部列表的元素:
1 tu = (["alex",4,5],"ewe",) 2 tu[0][2] = [1,3,5] 3 print(tu) 4 #(['alex', 4, [1, 3, 5]], 'ewe')
和其他类的转换
1 tu = ("asfe","ewe",) 2 s = "we35123fe" 3 li = ["aweb","egg"] 4 print(tuple(s),tuple(li)) 5 print(str(tu),list(tu)) 6 """ 7 ('w', 'e', '3', '5', '1', '2', '3', 'f', 'e') ('aweb', 'egg') 8 ('asfe', 'ewe') ['asfe', 'ewe'] 9 """
列表转换为字符串的方式:
——写for 循环:既有字符串又有数字
——用.join() :只有字符串
.index()
获取指定元素的索引,左侧优先
.count()
获得指定元素在元组中出现的次数
元组和列表的使用情况:
当创建的东西需要增、删、改时创建列表,当创建的东西不许修改时创建元组
字典
dict类
info = { "k1":"v1", #一个键值对 "k2":"v2" }
字典的value可以是任何值,数值、布尔值、字符串、列表、元组、字典......
字典的key可以是数值、字符串、元组、布尔值(布尔值会被忽略)
字典是无序的,即键值对的顺序是无序的
支持用索引的方式查找元素,不能切片
1 info = { 2 "k1":"v1", #一个键值对 3 "k2":True, 4 "k3":[7,86,9,(),{"kk1":4,"kk2":50}], 5 True:(1,2,3,) 6 } 7 print(info) 8 #{'k1': 'v1', 'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)} 9 v = info["k3"][4]["kk2"] 10 print(v) 11 #50
支持删除
1 del info["k1"] 2 print(info) 3 del info["k3"][4]["kk1"] 4 print(info) 5 """ 6 {'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)} 7 {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)} 8 """
for 循环 + .keys() .values() .items()
默认for循环和 .keys()结果只有key
for + .values()结果只有value
for + .items()结果是键值对
1 info = {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)} 2 for k in info: 3 print(k) 4 """ 5 k2 6 k3 7 True 8 """ 9 for k in info.keys(): 10 print(k) 11 """ 12 k2 13 k3 14 True 15 """ 16 for v in info.values(): 17 print(v) 18 """ 19 True 20 [7, 86, 9, (), {'kk2': 50}] 21 (1, 2, 3) 22 """ 23 for k,v in info.items(): 24 print(k,v) 25 """ 26 k2 True 27 k3 [7, 86, 9, (), {'kk2': 50}] 28 True (1, 2, 3) 29 """
.clear()
清空
.copy()
浅拷贝
dict.fromkeys()
根据序列创建字典,指定统一的值
info = dict.fromkeys(["a",1,3],"t") print(info) #{'a': 't', 1: 't', 3: 't'}
.get(key, c)
根据key获取value,如果不存在此key则返回c,不指定c返回None
.pop(key) .popitem()
前者删除字典中某个键值对,且删除的这个value可以获取
后者不可加参数,随机删除一对键值对,且可以获取删除的键值对
.setdefault()
设置新键值对,如已存在则获取当前key的值,否则设置,且获取新key对应的值
1 dic = {"k1":"v1","k2":"v2"} 2 v = dic.setdefault("k3",123) 3 print(dic,v) 4 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} 123 5 v1 = dic.setdefault("k1",123) 6 print(dic,v1) 7 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} v1
.update()
对字典进行更新,有两种使用方式
1 dic = {"k1":"v1","k2":"v2"} 2 dic.update({"k1":1,"k3":123}) 3 print(dic) 4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
1 dic = {"k1":"v1","k2":"v2"} 2 dic.update(k1 = 1,k3 = 123) 3 print(dic) 4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
注意:参数写成**kwargs,说明Python会自动转成字典