繁体   English   中英

处理两个2D列表-python 2.7

[英]manipulating two 2D lists - python 2.7

如果我有这两个清单...

a = [[1,y,y],[2,x,x],[3,x,x],[4,y,y]
b = [[1,x,x],[4,x,x]

我想将它们组合起来,从而形成一个新列表(c),如果(a)的第一个值等于(b)的第一个值,则包含(a)的每一行

c = [[1,y,y],[4,y,y]]

这是我到目前为止尝试过的...

for i in xrange(0,1):
    for j in xrange(0,3):
        if b[i][0] == a[j][0]:
           c[i:] = a[[j:]

由于(a)中的数据类型,覆盖c数组中的值不是问题。 我只是真的坚持了这一点,无论是对我的帮助还是对我的帮助,我都将不胜感激!

尝试这个:

c.append(a[j])

在您的IF语句中。

另外,您可以考虑使用集合和列表推导。

a = [[1,'y','y'],[2,'x','x'],[3,'x','x'],[4,'y','y']]
b = [[1,'x','x'],[4,'x','x']]

b0s = set(l[0] for l in b)

c = [l for l in a if l[0] in b0s]

print(c)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM