可能是一个愚蠢的问题,但我想知道一些事情:
假设我有以下词典:
dict = {
'nr_one' : 5,
'nr_two' : 6,
'nr_three' : *sum of the above numbers*
}
字典中是否有self
的东西允许我声明一个新的键,其中的值是带有两个字典值的操作的结果?
答案 0 :(得分:3)
实际上,没有。这是非常抽象的,为什么两个数字?为什么不是三个值?如果您想要更多的值,或只需要三个第一个值,该怎么办?
但就添加值而言,您可以使用sum
添加所有数字:
my_dict['total'] = sum(value for value in my_dict.values())
另外,请记住避免命名字典dict
,它将覆盖具有相同名称的内置函数。
顺便说一句,演示:
>>> my_dict = {'a':1, 'b':2, 'c': 3, 'd':4}
>>> my_dict['total'] = sum([value for value in my_dict.values()])
>>> my_dict
{'a': 1, 'c': 3, 'b': 2, 'd': 4, 'total': 10}
要进行其他类型的基本操作,您必须创建自己的功能。例如,乘以:
>>> def multiply(d):
values = d.values()
result = 1
for v in d.values():
result *= v
return result
>>> multiply(my_dict)
240
#shorter version, as @hcwhsa suggested:
>>> import operator
>>> reduce(operator.mul, my_dict.values())
240