Bob*_*Bob 0 python dictionary numpy
我有一个字典,看起来像这样:
{'A': ([ 0. , 1.0 , 2.0, 3.0, 0. , 0. , 0. , 0. , 0. ]),
'B': ([ 0. , 4.0, 5.0 , 6.0, 0. , 0. , 0. , 0. , 0. ]),
.
.
.
'Y': ([ 0. , 7.0, 8.0 , 9.0, 0. , 0. , 0. , 0. , 0. ]),
'Z': ([ 0. , 10.0, 20.0, 30.0, 0. , 0. , 0. , 0. , 0. ])}
Run Code Online (Sandbox Code Playgroud)
我想总结第2,第3和第4个元素并创建一个如下所示的新字典:
{'A': ([6.0]),
'B': ([15.0]),
.
.
.
'Y': ([24.0]),
'Z': ([60.0])}
Run Code Online (Sandbox Code Playgroud)
什么是pythonic方式呢?我使用的是Python 2.7.谢谢
使用字典理解来遍历dict项并将值相加:
{k: v[1:4].sum() for k, v in d.items()}
# {'A': 6.0, 'B': 15.0, 'Y': 24.0, 'Z': 60.0}
Run Code Online (Sandbox Code Playgroud)
如果要将结果保留为列表:
{k: v[1:4].sum(keepdims=True).tolist() for k, v in d.items()}
# {'A': [6.0], 'B': [15.0], 'Y': [24.0], 'Z': [60.0]}
Run Code Online (Sandbox Code Playgroud)