通过索引从列表中删除项目的另一个整数列表

所以,我有两个列表:


num = [
3, 22, 23, 25, 28, 29, 56, 57, 67, 68, 73, 78, 79, 82, 83, 89, 90, 91,
92, 98, 99, 108, 126, 127, 128, 131, 132, 133
]
details = [
'num=10,time=088', 'num=10,time=084', 'num=10,time=080', 'num=10,time=076',
'num=10,time=072', 'num=10,time=068', 'num=10,time=064', 'num=10,time=060',
'num=10,time=056', 'num=10,time=052', 'num=10,time=048', 'num=10,time=044',
.
.
.
.
'num=07,time=280', 'num=07,time=276', 'num=05,time=508', 'num=05,time=504',
'num=05,time=500', 'num=05,time=496'
]



num

它有 28 元素,A。
details

- 134 元素。 我想删除元素
details

根据索引基于值的值
num

. 例如,具有索引的元素 3, 22, 23, 25, 28... /这些是列表中的数字
num

/ 必须从中删除
details

.

当我使用时
.pop//

, 如上所述
https://coderoad.ru/627435/
, 这给了我一个错误,说:


AttributeError: 'str' object has no attribute 'pop'


就在我使用的时候
del details[]

, 这给了我一个错误,说:


IndexError: list assignment index out of range


这是我的代码:


for an in details:
an.pop/num/
已邀请:

君笑尘

赞同来自:

它应该做你想要的 /从零件中删除由值索引的每个元素 num/:


for i in reversed/num/:
del details[i]


他以相反的顺序重复列表,因此未来删除的未来事物的索引不会改变 /否则你会删除 3, 然后元素,先前索引为 22, 将是 be 21/ - 这可能是你的来源 IndexError.

小姐请别说爱

赞同来自:

唔。 两件事情。 首先,您的循环并不完全正确。 反而


for an in details:
an.pop/num/


你想要


for an in num: # step through every item in num list
details.pop/an/ # remove the item with index an from details list


其次,您必须确保 pop// 从细节中的元素以相反的顺序,以便您的索引是好的。 例如,如果你 pop// 指数 3 从详细信息,然后所有其他东西都在重新排序,并在删除索引时 22, 这将是错误的 "cell".

我简化了详细信息,以列出包含数字的列表 0 到 133, 但此代码应在您的真实列表中完美地工作。


num = [3, 22, 23, 25, 28, 29, 56, 57, 67, 68, 73, 78, 79, 82, 83, 89, 90, 91, 92, 98,
99, 108, 126, 127, 128, 131, 132, 133]

details = list/range/134//


# sort indexes in descending order /sort in place/
num.sort/reverse = True/

for an in num:
details.pop/an/

print/details/


出口


[0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24,
26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 70, 71,
72, 74, 75, 76, 77, 80, 81, 84, 85, 86, 87, 88, 93, 94, 95, 96, 97, 100, 101, 10
2, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 11
9, 120, 121, 122, 123, 124, 125, 129, 130]

要回复问题请先登录注册