我需要以计算效率最高的方式创建一个包含另一个字典元素总和的字典。
主词典的形式为:
{'11': [0.76700000000000002, 3455.0, 0.76700000000000002, 0.76700000000000002, 34.0, 0.76700000000000002], '22': [34.0, 0.76700000000000002]}
我需要创建一个包含相同键但包含第一个字典中整数之和的新字典。输出将是:
{'11': [3458], '22': [34.767]}
如果您想创建一个新字典(不要在已有的字典上添加),最简单和最有效的做法是将压缩字典与内置函数一起使用
sum
:在 Python 3 中:
在 Python 2 中:
输出是:
dict.iteritems
在 Python 2 中使用的原因是因为它dict.items
返回此版本中的键/值元组列表,这可能会导致大型字典的内存和效率问题。iteritems
返回一个迭代器。在 Python 3 中,它dict.items
返回一个可迭代的视图对象。如果要尽可能避免中间和及其浮点表示引起的精度误差,可以使用
math.fsum
:蟒蛇 3:
蟒蛇2:
离开:
由于您正在创建一个仅包含一个元素的列表,因此如果您以后不打算使用该列表,请仅使用总和创建键:
离开:
您要做的是遍历字典并在每个元素上遍历列表并添加它
或者,如果您更喜欢在函数中使用它:
然后只需调用该函数:
有关使用字典的更多信息,我找到了一些可能对您有用的文档: