python - 比较两个多维列表的一些问题

标签 python python-3.x list

感谢您看到我的问题。 我设计制作 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/

相关文章:

python - 为什么 `zip` 似乎消耗了 `groupby` 可迭代对象?

python - 子类别 Django 商店

python - 比较字典列表

java - 避免向泛型列表多次添加内容

python - 是否有基于类属性创建 __init__ 函数的快捷方式?

python - 用python划分两个数据框

python - django.db.utils.InternalError : (1050, "Table ' django_content_type' 已经存在")

java - 在java中从列表或数组列表中删除中间元素的最佳方法?

python - Pandas :nan->无

Python:显示对象的实现源