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 :(得分: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']]
答案 1 :(得分:2)
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']]