【问题标题】:Merge two nested lists in Python在 Python 中合并两个嵌套列表
【发布时间】: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


【解决方案1】:

对于这类事情,字典通常要好得多。

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]

【讨论】:

    【解决方案2】:
    >>> 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]]
    

    【讨论】:

      【解决方案3】:

      类似这样的东西(未经测试):

      Z=[]
      for x1, x2 in x:
          for y1, y2 in y:
              if x1 == y1:
                  z.append([x1, x2, y2])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 2021-11-01
        • 2018-11-17
        相关资源
        最近更新 更多