我有如下列表:
A = [1, 2, 3, 4]
使用枚举后我有以下列表:
A = [(0, 1), (1, 2), (2, 3), (3, 4)]
检查条件后,我意识到我不需要索引为 0 和 2 的元素。 这意味着我的条件返回如下列表,每次都可能不同:
condA = [(0, 1), (2, 3)]
我知道我可以使用 del
或 .pop()
从列表中删除一个元素。
但是,我想知道如何在我的 condA list
中读取 (0) 和 (2) 之类的数字,并从我的原始列表中删除这些元素。
我不想在我的代码中输入 0 和 2,因为每次它们都会不同。
结果是这样的:
A_reduced = [2, 4]
最佳答案
如果你想从 condA 列表中读取索引并创建该数字的列表,要删除的元素索引列表将如下所示:
rm_lst = [x[0] for x in condA]
现在,从主列表中删除元素:
A = [(0, ((11), (12))), (1, ((452), (54))), (2, ((545), (757))), (3, ((42), (37)))]
A_reduced = [x[1] for x in A if x[0] not in rm_lst]
最终代码:
A = [(0, ((11), (12))), (1, ((452), (54))), (2, ((545), (757))), (3, ((42), (37)))]
condA = [(0, ((11), (452))), (2, ((545), (757)))]
rm_lst = [x[0] for x in condA]
A_reduced = [x[1] for x in A if x[0] not in rm_lst]
print(A_reduced)
关于python - 如何通过每次都可以更改的索引删除列表中的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56332623/