python的min函数是如何工作的
我在看一个问题,想要得到最小值的元素。
所以如果是
d= {'a':2,'b':3,'f':5}
答案是a。
给出的答案是 min(d, key=d.get)
。
有人能解释一下这是怎么回事吗?
1 个回答
4
min
函数可以找出一个可迭代对象中最小的值,具体是根据你给定的条件来找。在这个例子中,它会返回字典 d
中,值最小的那个键。d.get
让你可以获取和字典键对应的值,当你遍历 d
的时候,这些键会被一个一个地访问。
举个例子:
>>> min([3, 5, 2, 1, 5])
1
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for i in d:
... print i
b
c
a
>>> d.get('b')
2
>>> d.get('d') # Nothing is returned
>>> min(d, key=d.get)
'a'
min
函数的 key
参数用来指定你想要找哪个键的最小值。
再举个例子:
>>> min(['243', '172344', '6'])
172344
>>> min(['243', '172344', '6'], key=len)
6
min
函数的工作原理大致是这样的:
>>> min(['243', '172344', '6'], key=len)
# sort the list with key (call `len` on every element and sort based on that)
# sorted(['243', '172344', '6'], key=len)
# return the first element (lowest value)
# sorted(['243', '172344', '6'], key=len)[0]
6