Python 在字典中发现最大的价值

Python 在字典中发现最大的价值,python,dictionary,max,key-value-store,Python,Dictionary,Max,Key Value Store,我试图找出字典中的最大值,但我在这方面遇到了一些麻烦。 这是我的密码: def most_fans(dictionary): empty = '' for key in dictionary: if len(dictionary[key]) > next(dictionary[key]): empty = key print(empty) 我意识到我的代码有问题,因为如果我有这样的字典: fans={'benfica': [

我试图找出字典中的最大值,但我在这方面遇到了一些麻烦。 这是我的密码:

def most_fans(dictionary):
    empty = ''
    for key in dictionary:
        if len(dictionary[key]) > next(dictionary[key]):
            empty = key
    print(empty)
我意识到我的代码有问题,因为如果我有这样的字典:

fans={'benfica': ['joao','ana','carla'],
      'sporting': ['hugo','patricia'],
      'porto': ['jose']}
输出将是“本菲卡”和“体育”。因为本菲卡比体育大,但体育也比波尔图大。但这是我想到的最好的

有人能告诉我一个合适的方法吗?

你可以用max和一把钥匙:

>>> max(fans, key=lambda team:len(fans[team]))
'benfica'
在这里:

maxfans。。。迭代球迷的关键点,即球队名称根据某些标准寻找最大的元素; lambda函数指定了这个示例中的标准,即团队拥有的粉丝数量。 您可以将max与一个键一起使用:

>>> max(fans, key=lambda team:len(fans[team]))
'benfica'
在这里:

maxfans。。。迭代球迷的关键点,即球队名称根据某些标准寻找最大的元素; lambda函数指定了这个示例中的标准,即团队拥有的粉丝数量。
如果你有两支球迷人数相同的球队:

fans = {'benfica':['joao','ana','carla'],
        'sporting':['hugo','patricia', 'max'],
        'porto':['jose']}
maxapproach只提供其中一种:

>>> max(fans, key=lambda team:len(fans[team]))
'benfica'
使用,您可以获得最常见的:

>>> from collections import Counter
>>> counts = Counter({k: len(v) for k, v in fans.items()})
>>> counts.most_common(2)
[('benfica', 3), ('sporting', 3)]
或全部:

>>> counts.most_common()
[('benfica', 3), ('sporting', 3), ('porto', 1)]

如果你有两支球迷人数相同的球队:

fans = {'benfica':['joao','ana','carla'],
        'sporting':['hugo','patricia', 'max'],
        'porto':['jose']}
maxapproach只提供其中一种:

>>> max(fans, key=lambda team:len(fans[team]))
'benfica'
使用,您可以获得最常见的:

>>> from collections import Counter
>>> counts = Counter({k: len(v) for k, v in fans.items()})
>>> counts.most_common(2)
[('benfica', 3), ('sporting', 3)]
或全部:

>>> counts.most_common()
[('benfica', 3), ('sporting', 3), ('porto', 1)]

你试过最大值吗?最大值是指最长的字符串值、最长的列表还是其他什么?在您的示例数据中,结果不应该是“benfica”吗,因为它的列表长度为3?我有,但它仍然给我相同的结果,我不明白为什么我尝试了不同的结果…您尝试了最大值吗?最大值是指最长字符串值还是最长列表或其他什么?在你的示例数据中,结果不应该是“benfica”,因为它的列表长度为3吗?我有,但它仍然给我相同的结果,我不明白为什么我尝试了不同的方法…我相信计数。most\u commonlencounts==计数。most\u commoni相信计数。most\u commonlencounts==计数。most\u commonlencounts==计数