Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问同一词典中的词典键值_Python_Dictionary - Fatal编程技术网

Python 访问同一词典中的词典键值

Python 访问同一词典中的词典键值,python,dictionary,Python,Dictionary,可能是个愚蠢的问题,但我想知道: 假设我有以下词典: dict = { 'nr_one' : 5, 'nr_two' : 6, 'nr_three' : *sum of the above numbers* } 字典中是否有一个self的东西允许我声明一个新的键,其中的值将是使用字典中两个值进行操作的结果?事实上,没有。这很抽象,为什么要使用两个dict数?为什么没有三个价值观?如果您想要更多的值,或者只需要前三个值呢 但在添加值时,可以使用sum添加所有数字: my_dic

可能是个愚蠢的问题,但我想知道:

假设我有以下词典:

dict = {
   'nr_one' : 5,
   'nr_two' : 6,
   'nr_three' : *sum of the above numbers*
}

字典中是否有一个
self
的东西允许我声明一个新的键,其中的值将是使用字典中两个值进行操作的结果?

事实上,没有。这很抽象,为什么要使用两个dict数?为什么没有三个价值观?如果您想要更多的值,或者只需要前三个值呢

但在添加值时,可以使用
sum
添加所有数字:

my_dict['total'] = sum(value for value in my_dict.values())
此外,请记住避免命名dictionary
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

不。那时它会变成一个公式感谢您的输入和澄清。另外,对于命名提示:)@aiKid,您不需要方括号,这将强制构建列表。如果没有方括号,sum的参数就像一个生成器-这可以与大数据集产生很大的不同。您可以将
乘法
函数缩短为:
减少(operator.mul,my_dict.values())
,并从
sum()
中删除
[]
,不需要在内存中创建列表。我刚刚意识到我们可以做到。。谢谢你的提示!