【发布时间】:2016-11-30 03:15:33
【问题描述】:
在以下dict(类,列表)中:
defaultdict(<class 'list'>, {2480: ['0.25', '0.1', '0.083'], 2651: ['0.43', '0.11', '0.23']})
defaultdict(<class 'list'>, {2480: ['0.15', '0.15', '0.6'], 2651: ['0.26', '0.083', '0.23']})
我试过了:
for key, val in data.values():
print(key, reduce(mul, (float(f) for f in val), 1))
这给了我错误:
for key, val in data.values():
AttributeError: 'str' object has no attribute 'values
也试过了,
for k1 in data.items():
print(k1)
打印出来:
(2480, ['0.25', '0.1', '0.083'])
(2651, ['0.43', '0.11', '0.23'])
但我无法使用 reduce(mul() 函数将浮点值相乘。
我想将浮点值相乘但保留类,保留列表值。
我希望输出是:
defaultdict(<class 'list'>, {2480: ['0.002075'], 2651: ['0.010879']})
defaultdict(<class 'list'>, {2480: ['0.0135'], 2651: ['0.0049634']})
但是,defaultdict(<class 'list' 保留在这里只是为了显示数据结构。
谢谢,
【问题讨论】:
标签: list python-3.x dictionary key-value-store multiplication