基础数据类型的补充
1. 元祖
元组里面如果只有一个元素且没有逗号,则该数据的数据类型与里面的元素相同。
tu1 = ('laonanhai') tu2 = ('laonanhai',) print(tu1, type(tu1)) print(tu2, type(tu2)) tu1 = (1) tu2 = (1,) print(tu1, type(tu1)) print(tu2, type(tu2))
2.列表
用算法将 (索引为奇数对应的所有元素全部删除)
方法一: 错误展示!!!
l1 = [111, 222, 333, 444, 555, ]
for index in range(len(l1)):
print('删除之前的index:%s' % index)
print('删除之前的l1:%s' % l1)
if index % 2 == 1:
del l1[index]
print('删除之后的index:%s' % index)
print('删除之后的l1:%s' % l1)
print(l1)
方法二: 正确
l1 = [111, 222, 333, 444, 555, ]
for index in range(len(l1)-1, -1, -1):
if index % 2 == 1:
del l1[index]
print(l1)
在循环一个列表时,最好不要改变列表的大小,会影响你的最终结果。
3.字典
fromkeys的用法
dic = dict.fromkeys('abc',666) print(dic) dic = dict.fromkeys([11,22,33],666) print(dic) dic = dict.fromkeys([1,2,3],[]) dic[1].append(666) # 如果在列表添加元素那么所有的键的值都会增加 print(dic)
在循环dict中,最好不要改变dict的大小,会影响结果或者报错。
# 删除key里有“k”的键对值
dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3','name': 'alex'} for i in dic: if 'k' in i: del dic[i]
# 字典在循环过程中不能删除里边的键对值!!!
# 正确方法
dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3','name': 'alex'}
l1 = []
for key in dic:
if 'k' in key:
l1.append(key)
# print(l1)
for key in l1:
del dic[key]
print(dic)