我正在阅读一个问题,其中期望的输出是获取具有最小值的元素。
因此,如果...
答案是a
给出的答案是
因此,如果...
d= {'a':2,'b':3,'f':5}
答案是a
给出的答案是
min(d, key=d.get)
有人可以解释一下这是如何工作的吗?d= {'a':2,'b':3,'f':5}
min(d, key=d.get)
有人可以解释一下这是如何工作的吗?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
< p > 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
i in d
是如何工作的?不是d是字典吗?我以为我们必须使用 d.iteritems()
。 - user192082107for i in d.keys()
。 - Volatilityd
是字典,这没问题。现在 key=d.get
的作用是什么?我理解 d.get()
可以获取某个键存储的值,但它从哪里获取键呢? - user192082107min
函数调用key
对可迭代对象进行排序,并返回结果列表的第一个元素。排序方法会对可迭代对象中的每个元素调用该函数以进行排序。这与map
和filter
函数的key
参数工作方式类似。 - Volatilitykey
来排序?您能用代码解释一下调用过程中发生了什么吗?您的意思是min
函数需要key
,以便它可以获取存储在该键上的值,因此值变为d.get(key)
。所以在获取所有值之后,它会按升序对它们进行排序,并给出列表中的第一个值。我是对的吗?所以key=d.get
被翻译为对每个项目执行d.get(key)
以获取那里的值。 - user192082107
d
中能够返回最小可比较值的key
,即函数d.get(key)
(等同于d[key]
)的返回结果最小。 - eumiromin(d.values())
计算最小值函数也可以正常工作,但我不知道第二个参数是用来做什么的。我的意思是第二个参数如何与第一个参数相关。 - user192082107list.sort()
中使用的那样。 - Chris Morganmin(d)
返回的是最小键,而不是具有最小值的键。 - Volatilitymin(d)
返回a
,是因为a<b<f
,而不是因为2<3<5
。对于d={'a':3,'b':2,'c':1}
,min(d)
返回a
,但min(d, key=d.get)
返回c
(因为1<2<3
)。 - eumiro