[英]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.