python循环删除列表和字典

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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值