首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除列表中的多个元素--包含项目位置的列表

删除列表中的多个元素--包含项目位置的列表
EN

Stack Overflow用户
提问于 2022-11-25 16:21:57
回答 4查看 24关注 0票数 0

我有两份名单。

List1是我正在尝试格式化的项目列表。

List2是我需要删除的List1中项目位置的列表(压缩副本)

问题似乎是它首先删除了第一个位置(9),然后删除了同时执行它们的第二个(16) after...instead。在移除9之后,列表将被更改,16也因此被移除到不同的预定位置。

代码语言:javascript
复制
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)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-11-25 16:32:32

试着做这样的事

代码语言:javascript
复制
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 i, x in enumerate(List2):
    List1.pop(x-i)

print(List1)
票数 0
EN

Stack Overflow用户

发布于 2022-11-25 16:32:31

您可以对List2进行排序,然后将其反转(sorted(List2, key=List2.index, reverse=True))。然后python会将这些元素从后面移到前面:

代码语言:javascript
复制
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]

List2 = sorted(List2, key=List2.index, reverse=True)
for x in List2:
    List1.pop(x)

print(List1)
票数 1
EN

Stack Overflow用户

发布于 2022-11-25 16:33:04

使用:

代码语言:javascript
复制
S = set(List2)

out = [x for i, x in enumerate(List1) if i not in S]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74575522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档