感谢您看到我的问题。 我设计制作 a_list 并删除 b_list 中的每个元素(如果 b_list 有一个元素)。 但它不能正常工作。它只适用于 a_list[0] 之外的情况。 我的代码中发生了什么?
a_list = [[0, 1], [0, 2]]
b_list = [[0, [0, 1], [0, 2], '3', [0, 4]], ['1', [0,1], [0, 2], [0, 3], '4', [0, 5]]]
for i in b_list:
for j in a_list:
temp = [k for k in i if k != j]
print(temp)
>>> 0, [0, 1], '3', [0, 4]]
['1', [0, 1], [0, 3], '4', [0, 5]]
在这个结果中,我无法理解为什么 [0, 1] 在那里!!!???
我想要这样的结果
>>> [0, '3', [0, 4]]
>>> ['1', [0, 3], '4', [0, 5]]
请帮助我。
最佳答案
你很接近。您可以对 b_list
的元素使用 not in
来检查它们是否存在于 a_list
中。
a_list = [[0, 1], [0, 2]]
b_list = [[0, [0, 1], [0, 2], '3', [0, 4]], ['1', [0,1], [0, 2], [0, 3], '4', [0, 5]]]
for i in b_list:
temp = [j for j in i if j not in a_list]
print(temp)
# [0, '3', [0, 4]]
# ['1', [0, 3], '4', [0, 5]]
关于python - 比较两个多维列表的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54641130/