Iqb*_*bal 6 python dictionary list
d = {
'a': [[1, 2, 3], [1, 2, 3]],
'b': [[2, 4, 1], [1, 6, 1]],
}
def add_element(lst):
ad = [sum(i) for i in zip(*lst)]
return ad
def csv_reducer2(dicty):
return {k: list(map(add_element, v)) for k, v in dicty.items()}
csv_reducer2(d)
Run Code Online (Sandbox Code Playgroud)
所需产量:
{'b': [3, 10, 2], 'a': [2, 4, 6]}
Run Code Online (Sandbox Code Playgroud)
上面是我一直在尝试的代码,但它给出了一个错误
zip参数#1必须支持迭代
>>> d = {'a': [[1, 2, 3], [1, 2, 3]], 'b': [[2, 4, 1], [1, 6, 1]]}
>>> {k: map(sum, zip(*v)) for k, v in d.items()}
{'a': [2, 4, 6], 'b': [3, 10, 2]}
Run Code Online (Sandbox Code Playgroud)
以下内容适用于 Python 2 或 3:
>>> {k: [a + b for a, b in zip(*v)] for k, v in d.items()}
{'a': [2, 4, 6], 'b': [3, 10, 2]}
Run Code Online (Sandbox Code Playgroud)
您的代码的问题是您正在映射到字典理解中的add_element每个单独元素。v这会将一维列表传递给zipin add_element,从而导致错误(因为单个整数不支持迭代。
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |