如何通过Python函数运行许多键

时间:2018-10-13 18:27:45

标签: python function loops dictionary

我有一个Python字典,例如mydict = {}

{5200:{'C1': 0.2, 'C2': 0.8, 'C3': 0.3}, 
 5201: {'C1': 0.0, 'C2': 0.8, 'C3': 0.2},
 5202: {'C1': 0.0, 'C2': 0.8, 'C3': 0.2},
...} 

然后我创建一个函数,为我插入的每个键提供结果。

def myfunction() 

为了得到我的成绩,我写

myfunction(mydict, 5200)

是否可以将我的所有键[5200、5201、5202 ..]插入该函数中,以便获得结果列表?

2 个答案:

答案 0 :(得分:2)

是的,您可以为此使用列表理解

[ myfunction(mydict, key) for key in mydict ]

或者您可以使用map(..)

from functools import partial

list(map(partial(myfunction, mydict), mydict))

但是请注意,字典是无序的(直到),因此可以按每种可能的顺序枚举键。这不是由于我们在此之上对其进行迭代的方式所致:当您将键值对存储在字典中时,则该顺序在字典中“丢失”。

答案 1 :(得分:1)

由于不按字典键排序,因此应使用设置来存储输出:

.limit()

请注意,使用集合要求{myfunction(mydict, k) for k in in mydict} 的所有输出都是可散列的

或者,如果要对键进行排序,以使输出是已排序键的结果(例如myfunction5200等的列表):

5201