基础数据类型的补充

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)

猜你喜欢

转载自www.cnblogs.com/luchenhui/p/9002814.html