在字典数组中找到最小值

问题描述

| 我有一个像下面这样的数组:
people = [{\'node\': \'john\',\'dist\': 3},{\'node\': \'mary\',\'dist\': 5},{\'node\': \'alex\',\'dist\': 4}]
我想计算所有\'dist \'键的最小值。例如,在上面的示例中,答案为3。 我写了以下代码
min = 99999
for e in people:
    if e[dist] < min:
        min = e[dist]
print \"minimum is \" + str(min)
我想知道是否有更好的方法来完成此任务。     

解决方法

        使用
min
功能:
minimum = min(e[\'dist\'] for e in people)
# Don\'t call the variable min,that would overshadow the built-in min function
print (\'minimum is \' + str(minimum))
    ,        
min(x[\'dist\'] for x in people)
    ,        您可以使用生成器表达式创建具有所有键的列表,然后使用内置的min函数:
min(x[\'dist\'] for x in people)
    ,        
min(people,key=lambda x:x[\'dist\'])[\'dist\']