1.元组
python中元组有一个特性,元组中如果包含一个元素且没有逗号,改元组不是元组,与改元素的数据类型一致,有逗号,那么他是元组
tu = (1) print(tu,type(tu)) #1 <class 'int'> tu1 = ('alex') print(tu1,type(tu1)) #alex <class 'str'> tu2 = ([1,2,3]) print(tu2,type(tu2)) #[1, 2, 3] <class 'list'> tu = (1,) print(tu,type(tu)) #(1,) <class 'tuple'> tu1 = ('alex',) print(tu1,type(tu1)) #('alex',) <class 'tuple'> tu2 = ([1,2,3],) print(tu2,type(tu2)) #([1, 2, 3],) <class 'tuple'>
元组也有一些其他的方法:
index:通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
tu = ('小白', [1, 2, 3, ], 'WuSir', '大神') print(tu.index('小白')) # 0 print(tu.index('大白')) # ValueError: tuple.index(x): x not in tuple
count: 获取某元素在元组中出现的次数
tu = ('小白', [1, 2, 3, ], 'WuSir', '大神','小白', '小白' ) print(tu.count('小白')) # 3 print(tu.count('大白')) # 0
2.列表
count: 获取某元素在列表中出现的次数
lis = ['小白', [1, 2, 3, ], 'WuSir', '大神','小白', '小白'] print(lis.count('小白')) # 3
index:通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
lis = ['小白', [1, 2, 3, ], 'WuSir', '大神','小白', '小白'] print(lis.index('大神')) # 3 print(lis.index('大白')) # ValueError: '大白' is not in list
sort : 对列表进行排序
lis = [4,1,3,7,5,10,6,6] lis.sort() print(lis) # 正序[1, 3, 4, 5, 6, 6, 7, 10] lis.sort(reverse=True) print(lis) # 倒序[10, 7, 6, 6, 5, 4, 3, 1]
reverse : 反转序列
lis = ['aa',1,'bb',3] lis.reverse() print(lis) # [3, 'bb', 1, 'aa']
列表也可以相加与整数相乘:
lis = ['aa',1,'bb',3] lis2 = [1,2,3] print(lis * 2) #['aa', 1, 'bb', 3, 'aa', 1, 'bb', 3] print(lis + lis2) #['aa', 1, 'bb', 3, 1, 2, 3]
循环列表,改变列表大小的问题
在循环一个列表时的过程中,如果你要改变列表的大小(增加值,或者删除值),那么结果很可能会出错或者报错。
例:索引为奇数对应的元素删除(不能一个一个的删)
l1 = [11, 22, 33, 44, 55, 66] for index in range(0,len(l1)): if index % 2 != 0: l1.pop(index) print(l1) 直接报错 D:\pythonProject\python3\venv\Scripts\python.exe D:\pythonProject\python3\day10\s1.py Traceback (most recent call last): File "D:\pythonProject\python3\day10\s1.py", line 6, in <module> l1.pop(index) IndexError: pop index out of range
所以应该如下方法删除
#索引为奇数对应的元素删除(不能一个一个的删) #方法一:直接删除 l1 = [11, 22, 33, 44, 55, 66] del l1[1::2] print(l1) #方法二:倒序删除 l1 = [11, 22, 33, 44, 55, 66] for index in range(-len(l1),0,1): if index % 2 !=0 : l1.pop(index) print(l1) #方法三:思维置换 l1 = [11, 22, 33, 44, 55, 66] new_lis = [] for index in range(0,len(l1)): if index % 2 == 0: new_lis.append(l1[index]) l1 = new_lis print(l1)
3.dict
字典的增删改
#popitem 3.5版本之前,popitem为随机删除,3.6之后为删除最后一个,有返回值 dic = {'name': '小白', 'age': 30} ret = dic.popitem() print(ret,dic) # ('age', 30) {'name': '小白'} # update dic = {'name': '小白', 'age': 30} dic.update(sex='男',height=165) print(dic) #{'name': '小白', 'age': 30, 'sex': '男', 'height': 165} dic = {'name': '小白', 'age': 30} dic.update(([(1,'a'),(2,'b'),(3,'c')])) print(dic) #{'name': '小白', 'age': 30, 1: 'a', 2: 'b', 3: 'c'} dic1 = {'name': '小白', 'age': 30} dic2 = {'name': 'huangping', 'height':165} dic1.update(dic2) print(dic1) #{'name': 'huangping', 'age': 30, 'height': 165}
fromkeys:创建一个字典:字典的所有键来自一个可迭代对象,字典的值使用同一个值。
dic = dict.fromkeys('abcd','小白') print(dic) #{'a': '小白', 'b': '小白', 'c': '小白', 'd': '小白'} dic = dict.fromkeys([1,2,3],'小白') print(dic) #{1: '小白', 2: '小白', 3: '小白'} #这里有一个坑,就是如果通过fromkeys得到的字典的值为可变的数据类型,那么你的小心了。 dic = dict.fromkeys([1, 2, 3], []) dic[1].append(666) print(id(dic[1]),id(dic[2]),id(dic[3])) #2655183481344 2655183481344 2655183481344 print(dic) #{1: [666], 2: [666], 3: [666]}
标签:index,补充,l1,数据类型,dic,小白,内容,lis,print From: https://www.cnblogs.com/zhazhadba/p/16941905.html