我有两张单子。
List1是我尝试格式化的项目列表
List2是List1中需要删除的项位置列表(压缩重复项)
问题似乎是它首先删除第一个位置(9),然后在...之后删除第二个位置(16),而不是同时进行。在它删除9之后,列表被更改,16因此在不同的预期位置被删除。
List1 = ["HST", "BA", "CRM", "QQQ", "IYR", "TDG", "HD", "TDY", "UAL", "CRM", "XOM", "CCL", "LLY", "QCOM", "UPS", "MPW", "CCL", "ILMN", "MU", "GOOGL", "AXP", "IVZ", "WY"]
List2 = [9, 16]
print(List1)
print(List2)
for x in List2:
List1.pop(x)
print(List1)
4条答案
按热度按时间xzv2uavs1#
你可以对List2进行排序,然后反转(
sorted(List2, key=List2.index, reverse=True)
),python会从后往前移除这些元素:vbkedwbf2#
试试这样东西
yzxexxkh3#
用途:
nhhxz33t4#
您可以使用enumerate来记录已移除的项目数量,并在清单上寻找它们的新位置。
如果您移除一个项目,则要移除的下一个项目的索引为-1。
enumerate
返回具有列表值和循环计数的元组。