1、循环删除列表中的元素
lis = [11,22,33,44,55]
for i in range(len(lis)):
del lis[i]
删除报错,因为删除过程中,列表的下标会自动补齐到0
2、将偶数从列表中删掉
lis = [11,22,33,44,55]
for i in range(len(lis)):
if len[i] % 2 == 0:
print (lis)
3、将字典里面键名称含有K的键值对删掉
dic = {'k1':'v1','k2':'v2','a3':'v3'}
for i in dic:
if 'k' in i:
del dic[i]
报错信息:
Traceback (most recent call last):
File “C:/python/diangotest/20191125.py”, line 23, in
for i in dic:
RuntimeError: dictionary changed size during iteration
解决方案1:生成一个新的字典,将键值不包含’k’的加入进去
dic1 = {}
for i in dic:
if 'k' not in i:
dic1.setdefault(i,dic[i])
dic = dic1
print (dic)
解决方案2:将键名包含k的加入到列表中,循环列表,再对应的键名
k_in_lis = []
for i in dic:
if 'k' in i:
k_in_lis.append(i)
print (k_in_lis)
for i in k_in_lis:
del dic[i]
print (dic)
在循环列表和字典的时候,不要删除其中的元素,会比较麻烦
问题:什么数据类型转换成bool值全是false?
数字0 --> bool值 为 false
字符串 --> bool值 为 false
空列表 --> bool值 为 True
空元组 --> bool值 为 True
空集合 --> bool值 为 True
print (bool(''),type(''))
print (bool(['']),type(['']))
print (bool(('',)),type(('',)))
print (bool({''}),type({''}))
元组,如果元组里面只有一个元素并且不加逗号,那么该元素是什么类型,就是什么类型;如果加了逗号,那么该元素类型是元组
tup = (1)
tup1 = (1,)
print(tup,type(tup))
print(tup1,type(tup1))
lst = ([1])
lst1 = ([1],)
print(lst,type(lst))
print(lst1,type(lst1))