我正在尝试查找字典中最小元素的键。
sentence: 1, Opposition MP Namal Rajapaksa questions Environment Ministe [...] Sirisena over Wilpattu deforestation issue.
sentence: 2, but he should remember that it all started with his dad and [...] a coma in that days .
sentence: 3, Opposition MP Namal Rajapaksa questions Environment Ministe [...] Sirisena over Wilpattu deforestation issue.
sentence: 4, Pawu meya ba ba meyage [...]
sentence: 5, We visited Wilpaththu in August 2013 These are some of the [...] deforestation of Wilpattu as Srilankans .
sentence: 6, Mamath wiruddai .
sentence: 7, Yeah we should get together and do something.
sentence: B, Mama Kamathyi oka kawada hari wenna tiyana deyak .
sentence: 9, Yes Channa Karunaratne we should stand agaist this act dnt [...] as per news spreading Pls .
sentence: 10, LTTE eken elawala daapu oya minissunta awurudu 30kin passe [...] sathungena balaneka thama manussa kama .
sentence: 11, Shanthar mahaththayo ow aththa eminisunta idam denna one g [...] vikalpa yojana gena evi kiyala.
sentence: 12, You are wrong They must be given lands No one opposes it W [...]
我应该以'a'作为键。
我找到了这段代码,但是我不太确定它是如何工作的。
dictionary = {'a': 5, 'b': 7, 'c': 8}
当我假设def key_of_min_value(d):
print(min(d, key=d.get))
部分说它正在获取字典中的最小元素时,我对key = d.get
的含义感到困惑。
答案 0 :(得分:2)
“键”一词在这里有点重载。传递给min
的键(即d.get
)是可调用的,用于在比较之前转换值。内置函数key
有一个类似的sorted
参数。
此“键”与在引用字典的键/值时使用的“键”一词无关。
因此,代码可以通过迭代在k
最小的字典中找到d.get(k)
来工作。
答案 1 :(得分:1)
摘自min
的文档:
min(arg1,arg2,* args [,key]):
返回可迭代的最小项或两个或多个参数中的最小项。 如果提供了一个位置参数,则它应该是可迭代的。返回iterable中的最小项。如果提供了两个或多个位置参数,则返回最小的位置参数。
有两个可选的仅关键字参数。 key参数指定一个单参数排序函数,例如用于list.sort()的函数。默认参数指定在提供的iterable为空时要返回的对象。如果iterable为空且未提供默认值,则会引发ValueError。
重要的是要了解min
通过遍历参数进行操作,并且(未指定键)返回“最低”的排序值。与<, >, etc.
运算符进行了比较。当您将可调用对象传递为key
时,各个元素将用作此函数的参数。
要进一步分解,这是(或多或少)您致电min(d, key=d.get)
时发生的事情:
lowest_val = None
lowest_result = None
for item in d:
if lowest_val is None or d.get(item) < lowest_val:
lowest_val = d.get(item) # These are the elements we are comparing
lowest_result = item # But this is the element we are 'returning'
print(f"The min value (result of the callable key) is '{lowest_val}'")
print(f"The min item corresponding to the min value is '{lowest_result}'")
注意,我们不会比较每个item
,但是当将item
用作参数时,我们将比较可调用键的结果。