我有一个列表a
例如:
a = [[1, 3, 7], [3, 5, 7], [-23, -34, -45]]
另一个列表b
例如:
b = [1, 2, 3, 4]
我想创建一个列表c
,当列表a
的一行的前两列中的项目不在列表b
中时,a的行被附加到列表c中。在示例列表c中,如下所示:
c = [[7], [7], [-45]]
因为a
的第一行包含1和3,它们都存在于b
中,第二行包含3,它们存在于b
。你知道吗
我尝试了以下方法但没有成功:
for row in a:
if row[0] or row[1] not in b:
c.append(a)
以及
for row in a:
if row[1] not in b:
if row[0] not in b:
c.append(a)
因为两者似乎只是把a
复制到b
有人知道为什么我的代码不起作用吗?你知道吗
编辑:抱歉,我第一轮就把预期结果搞错了
编辑2:我把事情搞砸了-我设计错了,我的输入列表来自另一个来源,我把它们复制错了。所以我实际上想做的是
c = [ ]
a = [[1, 3, -23], [3, 5, -34], [7, 7, -45]]
b = [1, 2, 3, 4]
for row in a:
if row[0] not in b and row[1] not in b:
c.append(row)
谢谢所有帮忙的人。对不起,我真是个白痴。你知道吗
只需使用
sets
和list comprehensions
:可能情况不对?你知道吗
row[0]
是真的,如果不是零,那么为什么总是将a复制到b对@muzulget的答案稍加修改:
相关问题 更多 >
编程相关推荐