在度中心网络 x 值字典中找到最大值的键的更优雅的解决方案?
More elegant solution for finding the key for maximum value in the dictionary of degree centrality networkx values?
我有一个带有键的度中心值字典,deg_c:
{1: 0.026501766784452298,
2: 0.020318021201413426,
3: 0.03356890459363958,
4: 0.019434628975265017,
5: 0.0088339222614841,
...}
我找到了这样的最大值的关键
def f1():
deg_c = nx.degree_centrality(G1)
degree_value = max([v for k,v in deg_c.items()])
degree_node = [k for k,v in deg_c.items() if v == degree_value]
return degree_node[0]
它returns 元组 (105, 0.0636042402826855) 中的键 105。
但是,我在这里使用了两次列表理解。我怎么能把它写成一行?一定会有更好的办法..
谢谢。 :o)
使用最大值的键参数
max(my_dict.items(), key=lambda x: x[1])[0]
为了加快速度,您可以使用 operator.itemgetter
from operator import itemgetter
max(my_dict.items(), key=itemgetter(1))[0]
我有一个带有键的度中心值字典,deg_c:
{1: 0.026501766784452298,
2: 0.020318021201413426,
3: 0.03356890459363958,
4: 0.019434628975265017,
5: 0.0088339222614841,
...}
我找到了这样的最大值的关键
def f1():
deg_c = nx.degree_centrality(G1)
degree_value = max([v for k,v in deg_c.items()])
degree_node = [k for k,v in deg_c.items() if v == degree_value]
return degree_node[0]
它returns 元组 (105, 0.0636042402826855) 中的键 105。
但是,我在这里使用了两次列表理解。我怎么能把它写成一行?一定会有更好的办法.. 谢谢。 :o)
使用最大值的键参数
max(my_dict.items(), key=lambda x: x[1])[0]
为了加快速度,您可以使用 operator.itemgetter
from operator import itemgetter
max(my_dict.items(), key=itemgetter(1))[0]