Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Loops_Dictionary - Fatal编程技术网

列表中的Python访问和求和字典值

列表中的Python访问和求和字典值,python,list,loops,dictionary,Python,List,Loops,Dictionary,我想知道如何访问字典中的列表值来求和: {'key1': [3, 1], 'key2': [0, 4], 'key3': [57492, 204652], 'key4': [1,3]} 我想对每个列表的第一个元素求和(3,057492,1) 是否可以在没有任何循环的情况下执行此操作 提前感谢您您必须迭代整个字典,这意味着您必须使用循环 只需使用如下列表即可完成: sum([values[0] for key, values in dictionary.items()]) 如果字典中的项目数量

我想知道如何访问字典中的列表值来求和:

{'key1': [3, 1], 'key2': [0, 4], 'key3': [57492, 204652], 'key4': [1,3]}
我想对每个列表的第一个元素求和(3,057492,1)

是否可以在没有任何循环的情况下执行此操作


提前感谢您

您必须迭代整个字典,这意味着您必须使用循环

只需使用如下列表即可完成:

sum([values[0] for key, values in dictionary.items()])
如果字典中的项目数量很大,则可以使用生成器函数代替
dictionary.items()

对于Python2.x:

for key, value in d.iteritems():
对于Python 3.x:

for key, value in d.items():
您可以在此处阅读更多关于如何理解列表的内容:


翻阅字典:

你试过什么吗?你看过如何迭代字典中的值吗?是的,但每次我必须使用循环,我认为有一种方法可以一次访问所有值,而不必迭代所有字典。无论如何,你必须迭代字典,无论这涉及列表理解、for循环、while循环,或者在
map
的内部隐藏一些循环。首先非常感谢,其次如果我使用迭代器会更好,因为我有大量的值?我读过,但我对编程还是相当陌生。@0什么是“巨大的”?如果要使用内存效率验证,只需使用生成器表达式:
sum(v[0]表示d.values()中的v)
。如果您使用的是Python2,请改用
d.itervalues()
。酷,是的,您可以使用迭代器,但其工作方式相同。列表理解也是一个迭代器,它只是简单地写在一行中。正如@juanpa.arrivillaga指出的,如果列表中的值太多,您可以使用迭代器或生成器函数。@VikashSingh非常感谢您的建议,我尝试了很多东西,但我想我会更清楚地提出问题,而不是所有的尝试。但是注意到了!再次感谢你