2012-09-06 149 views
-8

我有兩個列表:合併兩個嵌套列表在Python

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

我想只保留信件的共同要素和2名名單組合成:

[['a', 1, 4], ['c', 3, 6]] 

我怎樣才能去做?

+9

你可以做任何事情。你有什麼嘗試? – Nagri

回答

1

像這樣(未經):

Z=[] 
for x1, x2 in x: 
    for y1, y2 in y: 
     if x1 == y1: 
      z.append([x1, x2, y2]) 
3
>>> x = [['a', 1], ['b', 2], ['c', 3]] 
>>> y = [['a', 4], ['c', 6]] 
>>> lazy = dict 
>>> lazyx = lazy(x) 
>>> lazyy = lazy(y) 
>>> [[lazy, lazyx[lazy], lazyy[lazy]] for lazy in lazyx if lazy in lazyy] 
[['a', 1, 4], ['c', 3, 6]] 
0

字典通常是這樣的東西好多了。

z = {} 
for key, val in x + y: 
    z[key] = z.get(key, []) + [val] 
print z #{'a': [1, 4], 'c': [3, 6], 'b': [2]} 
print a["b"] #[2] 
print a["c"] #[3, 6]