Finding minimum value in an array of dicts
I have an array like the following:
people = [{'node': 'john', 'dist': 3},
{'node': 'mary', 'dist': 5},
{'node': 'alex', 'dist': 4}]
I want to compute the minimum of all the 'dist' keys. For 开发者_如何学编程instance, in the above example, the answer would be 3.
I wrote the following code:
min = 99999
for e in people:
if e[dist] < min:
min = e[dist]
print "minimum is " + str(min)
I am wondering if there is a better way to accomplish this task.
Use the min
function:
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)
You could use a generator expression to create a list with all keys and then use the built-in min function:
min(x['dist'] for x in people)
min(people, key=lambda x:x['dist'])['dist']
精彩评论