【发布时间】:2012-08-31 05:47:27
【问题描述】:
我有两个列表:
x = [['a', 1], ['b', 2], ['c', 3]]
y = [['a', 4], ['c', 6]]
我想只保留字母的共同元素并将两个列表合并为:
[['a', 1, 4], ['c', 3, 6]]
我该怎么做?
【问题讨论】:
-
你可以做任何事情。你试过什么?
标签: python list dictionary
我有两个列表:
x = [['a', 1], ['b', 2], ['c', 3]]
y = [['a', 4], ['c', 6]]
我想只保留字母的共同元素并将两个列表合并为:
[['a', 1, 4], ['c', 3, 6]]
我该怎么做?
【问题讨论】:
标签: python list dictionary
对于这类事情,字典通常要好得多。
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]
【讨论】:
>>> 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]]
【讨论】:
类似这样的东西(未经测试):
Z=[]
for x1, x2 in x:
for y1, y2 in y:
if x1 == y1:
z.append([x1, x2, y2])
【讨论】: