【问题标题】:I need to merge these two lists together in python [closed]我需要在python中将这两个列表合并在一起[关闭]
【发布时间】:2020-03-25 03:01:28
【问题描述】:
listA = [['a','1'],['e','5'],['i','3'],['o','7'],['u','3']]
listB = [['a','6'],['b','3'],['c','4'],['d','1'],['e','2']]

现在,这些列表代表项目数。我想合并这两个列表,这样我也可以看到另一个列表中每个项目的计数。

如果一个项目存在于一个列表中,而另一个列表中不存在,那么我想将其声明为“0”而不是 null。如下图:

output = [['a','1','6'],['e','5','2'],['i','3','0'],['o','7','0'],
      ['u','3','0'],['b','0','3'],['c','0','4'],['d','0','1']]

编辑:只是为了澄清问题以供将来参考。已经回答了。

【问题讨论】:

  • 您应该编辑您的问题以包含用于组合列表的确切规则。您包含一个示例很好,但这只是其中的一部分。特别要说明包含字符"0"的字符串的意义。
  • 初始列表中没有0,它怎么会出现在['i', '3', '0']中?这是默认值吗?
  • 是的,如果不显示计数,它(“0”)是默认计数

标签: python python-3.x list spyder


【解决方案1】:
listA = [['a','1'],['e','5'],['i','3'],['o','7'],['u','3']]
listB = [['a','6'],['b','3'],['c','4'],['d','1'],['e','2']]

dictA = dict(listA)
dictB = dict(listB)

result = []

for key, value in listA:
  result.append([key, value, dictB.get(key, '0')])

for key, value in listB:
  if key not in dictA:
    result.append([key, '0', value])

print(result)
# [['a', '1', '6'], ['e', '5', '2'], ['i', '3', '0'], ['o', '7', '0'], ['u', '3', '0'], ['b', '0', '3'], ['c', '0', '4'], ['d', '0', '1']]

【讨论】:

    【解决方案2】:

    您可以使用集合中的 defaultdict。 像这样:

    >>> from collections import defaultdict
    >>> output = defaultdict(list)
    
    >>> for k,v in dict(listA).items():
    ...     output[k].append(v)
    ...
    >>> output
    defaultdict(<class 'list'>, {'a': ['1'], 'e': ['5'], 'i': ['3'], 'o': ['7'], 'u': ['3']})
    
    >>> for k,v in dict(listB).items():
    ...     output[k].append(v)
    ...
    >>> output
    defaultdict(<class 'list'>, {'a': ['1', '6'], 'e': ['5', '2'], 'i': ['3'], 'o': ['7'], 'u': ['3'], 'b': ['3'], 'c': ['4'], 'd': ['1']})
    
    >>> [[k,*v] for k,v in output.items()]
    [['a', '1', '6'], ['e', '5', '2'], ['i', '3'], ['o', '7'], ['u', '3'], ['b', '3'], ['c', '4'], ['d', '1']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-02
      • 2022-09-28
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      相关资源
      最近更新 更多