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