如何使用Python仅移除嵌套列表中的“deerleader”而保留“North Korea”
问题原因
你原代码中pop(3)是对顶层的satellites列表操作,索引3对应的是完整的["deerleader", "North Korea"]子列表,所以会把两个值一起删掉。
解决代码
如果你确定要删除的元素在索引为3的子列表的首位,直接操作该子列表即可:
satellites = [["sputnik", "USSR"], ["telstar", "USA"], ["asterix", "France"], ["deerleader", "North Korea"], ["azur", "Germany"]] print(satellites) # 对索引3的子列表执行pop,删除下标为0的"deerleader" satellites[3].pop(0) print(satellites)
如果不确定目标元素所在的子列表位置,可以遍历匹配后删除,适配性更强:
satellites = [["sputnik", "USSR"], ["telstar", "USA"], ["asterix", "France"], ["deerleader", "North Korea"], ["azur", "Germany"]] print(satellites) for sub_item in satellites: if "deerleader" in sub_item: sub_item.remove("deerleader") break print(satellites)
执行效果
修改后索引3的子列表会变为["North Korea"],仅删除卫星名保留对应国家信息。
内容的提问来源于stack exchange,提问作者Alexis Dillon
相关产品推荐
相关产品推荐

