gpt4 book ai didi

Python 字典中的最大列表

转载 作者:行者123 更新时间:2023-12-01 03:58:25 25 4
gpt4 key购买 nike

我正在使用 Python 中的内置 max() 函数,如下所示:

max(test_sentences, key=test_sentences.get)

我使用它的目的是在字典列表(test_sentences)中查找最大值。我想取回该键,该键在该键旁边的列表中的 [0] 位置上具有最大值。一个例子(请忽略你'):

{u'my name is tomi': [0, 1, 10, u'my', u'name', u'is', u'tomi'],
u'your name is tomi': [0, 1, 10, u'your', u'name', u'is', u'tomi'],
u'hello bello bye fine': [5, 42, 10, u'hello', u'bello', u'bye', u'fine'],
u'okkay tomi': [1, 1, 10, u'okkay', u'tomi'],
u'fine my name is tomi': [15, 1, 10, u'fine', u'my', u'name', u'is', u'tomi']}

在这种情况下,获胜者将是:

u'fine my name is tomi'

因为列表的 [0] 元素是 15,这是最大的。

实际上我写的代码就可以工作:

max(test_sentences, key=test_sentences.get)

但我不明白为什么......有人可以帮我解释一下......只是想防止错误。

谢谢!

最佳答案

当你在字典上调用 max 时,你实际上是在对字典的键进行操作,并忽略值。对于将字典视为可迭代的其他操作也是如此,例如。 for k in dict: 等。因此,如果您只执行 max(test_sentences) 您将只获得字典的最后一个键(按字母顺序排列)。如果您想使用其他内容进行排序,可以使用 key 传递它,其中提供一个函数将您的值转换为您要排序的实际内容。 dict.get(k)dict[k] 相同,因此在您的代码中,您只需对每个键说,从字典中获取相应的值,并用它来排序。列表上的排序顺序首先使用第一个值,这就是您的要求。

关于Python 字典中的最大列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37040677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com