如何遍历Python字典并就地修改作为值存储的列表内的元素
实现方法
当然可以实现,列表属于Python可变类型,遍历到列表内对应元素后直接修改即可完成就地操作,不需要重新为字典键赋值。
基础实现代码
以下代码可以替换所有列表中出现的item3:
dictio = { 'A' : ['item1', 'item2', 'item3'], 'B' : ['item4', 'item5', 'item3'] } # 遍历字典所有列表值 for lst in dictio.values(): # 用enumerate同时获取索引和元素,才能修改列表指定位置内容 for index, value in enumerate(lst): if value == 'item3': lst[index] = '替换后的新值'
执行后查看结果:
print(dictio) # 输出:{'A': ['item1', 'item2', '替换后的新值'], 'B': ['item4', 'item5', '替换后的新值']}
按键过滤的实现
如果需要只修改指定键对应的列表,使用dict.items()遍历即可:
for key, lst in dictio.items(): # 示例:只处理键为'A'的列表 if key == 'A': for index, value in enumerate(lst): if value == 'item3': lst[index] = '仅A列表的替换值'
注意事项
- 不要直接修改遍历得到的元素临时变量
value,该修改不会同步到原列表,必须通过索引修改列表对应位置的内容 - 本操作属于真正的就地修改,不会额外生成新的字典或列表对象
内容的提问来源于stack exchange,提问作者MarceloCesar
相关产品推荐
相关产品推荐

