【Python】list与dict在删除元素时需要注意的地方

#1.索引为奇数值,删除
# 删除列表元素时,会影响列表长度,从而使得索引取值时,容易出现错误。

li = [11, 22, 33, 44, 66]

li = [11, 22, 33, 44, 66]  # 0
# 索引为奇数值,删除
for i in range(0, len(li)):  # 4,0
    del li[i]
print(li)

# 解决方案一:
# li = [11, 22, 33, 44, 66] # 0
# new_list = []
# # 索引为奇数值,删除
# for i in range(0,len(li)):
#     if i%2 == 0:
#         new_list.append(li[i])
# li = new_list
# print(li)

# 解决方案二:
# li = [11, 22, 33, 44, 66] # 0
# # 索引为奇数值,删除
# for i in range(len(li)-1,-1,-1): # 4,0
#     if i%2 == 1:
#         del li[i]
# print(li)

dict删除时需要注意

# 出错点
# 题:dic = {'k1':"v1",'k2':'v2'}把key="k1",键值对删除
#     del dic['k1']

# 题:dic = {'u1':"v1",'k2':'v2','k3':'v3'}把key中存在k,键值对删除
#     


dic = {'u1': "v1", 'k2': 'v2', 'k3': 'v3'}
# 不要在循环当前字典的过程中,修改当前字典大小

# 错误
# for key in dic:
#     if 'k' in key:
#         del dic[key]

# 正确方式 
dic_key_list = []
for key in dic:
    dic_key_list.append(key)

for row in dic_key_list:
    if 'k' in row:
        del dic[row]
print(dic)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值