python入门_老男孩_列表和字典循环删除的正确方法

问题

# 会出现索引溢出现象
li = [1, 2, 3, 4, 5]

for i in range(li):
     li.pop(i)

print(li)
View Code

 

# dictionary false
dic = {'k1':'1', 'k2':'2', 'k3':'3'}

for i in dic:
    if 'k' in i:
        del dic[i]
print(dic)
View Code

 

解决

  列表

  倒序循环法

li = [1, 2, 3, 4, 5]

for i in range(len(li)-1, -1, -1):
     li.pop(i)

print(li)
View Code

 

  遍历拷贝删除法

# 删除指定元素
li = [1, 2, 3, 4, 5]

for item in li[:]:
    if item == 2:
        li.remove(item)
print(li)
View Code

  对于较大的list,拷贝占用内存大

 

  字典 

dic = {'k1':'1', 'k2':'2', 'a':'3'}
l = []

for i in dic:
    if 'k' in i:
        l.append(i)
for i in l:
    del dic[i]
print(dic)
View Code

 

转载于:https://www.cnblogs.com/dignity/p/9755730.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值