You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历列表过滤最低值时删除元素出现非预期结果求助

问题原因
  • 代码中items2 = items属于引用赋值,两个变量指向同一个列表对象,修改items的同时会直接修改items2,在遍历items2的过程中删除列表元素,会导致迭代器索引错位,出现漏遍历、误删除的异常表现。
  • 原双层循环的逻辑冗余且不稳定:只要匹配到任意一个同名称且价格更低的条目就删除当前元素,配合迭代中的列表修改操作,会导致判断逻辑完全混乱,甚至出现最低价条目被误删的情况。
正确实现方案

你的需求是保留每个物品名称对应的最低价格条目,可先统计每个名称的最低价,再一次性过滤列表,避免遍历过程中修改原列表:

items=[['Yellow Goblin Egg', 25000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 46000], ['Yellow Goblin Egg', 50000], ['Yellow Goblin Egg', 58000], ['Yellow Goblin Egg', 59000], ['Yellow Goblin Egg', 60000], ['Yellow Goblin Egg', 60000], ['Yellow Goblin Egg', 70000], ['Yellow Goblin Egg', 70000], ['Yellow Goblin Egg', 72000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 73000], ['Yellow Goblin Egg', 74000], ['Yellow Goblin Egg', 75000], ['Yellow Goblin Egg', 80000], ['Yellow Goblin Egg', 130000], ['Yellow Goblin Egg', 200000], ['Yellow Repelling Candle', 1300000], ['Yellow Repelling Candle', 1500000], ['Forceful Yellow Crab Hat of Celebration', 14999999], ['Hurtful Yellow Crab Hat of Celebration', 15000000], ['Bloody Yellow Crab Hat of Celebration', 15000000], ['Yellow Crab Hat of Celebration', 15000000], ['Itchy Yellow Crab Hat of Celebration', 16600000], ['Itchy Yellow Crab Hat of Celebration', 16800000], ['Bloody Yellow Crab Hat of Celebration', 17777777], ['Yellow Crab Hat of Celebration', 18000000], ['Yellow Crab Hat of Celebration', 18990000], ['Yellow Crab Hat of Celebration', 19000000], ['Itchy Yellow Crab Hat of Celebration', 20000000], ['Shaded Yellow Crab Hat of Celebration', 20444000], ['Shaded Yellow Crab Hat of Celebration', 25000000], ['Itchy Yellow Crab Hat of Celebration', 30000000], ['Yellow Crab Hat of Celebration', 30000000], ['Yellow Goblin Egg', 40000000], ['Neon Yellow Sheep Skin', 42000000], ['Neon Yellow Sheep Skin', 43000000], ['Neon Yellow Sheep Skin', 44000000], ['Neon Yellow Sheep Skin', 58000000], ['Neon Yellow Sheep Skin', 59700000], ['Unpleasant Yellow Crab Hat of Celebration', 75000000]]

# 统计每个物品的最低价格
min_price = {}
for name, price in items:
    if name not in min_price or price < min_price[name]:
        min_price[name] = price

# 过滤列表,保留所有最低价条目
filtered_items = [item for item in items if item[1] == min_price[item[0]]]

print(filtered_items)

如果需要每个名称仅保留1条最低价条目,将第二步过滤逻辑替换为以下代码即可:

filtered_items = [[name, price] for name, price in min_price.items()]

内容的提问来源于stack exchange,提问作者Samuel Liebert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:39:03