Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到字典中哪个键的值列表最长?_Python_Dictionary - Fatal编程技术网

Python 如何找到字典中哪个键的值列表最长?

Python 如何找到字典中哪个键的值列表最长?,python,dictionary,Python,Dictionary,我试图找出字典中哪个键的值列表最长。我在一门非常简单的计算机科学课上,所以我不能使用lambda和其他复杂的术语。我想知道是否有一种方法可以使用循环、if语句和len来做到这一点 还有,如何显示具有最长值列表的键的值?一个简单的解决方案可以如下所示: max_len = 0 max_key = "" for key in d: cur_len = len(d[key]) if cur_len>max_len: max_key = key ma

我试图找出字典中哪个键的值列表最长。我在一门非常简单的计算机科学课上,所以我不能使用lambda和其他复杂的术语。我想知道是否有一种方法可以使用循环、if语句和len来做到这一点


还有,如何显示具有最长值列表的键的值?

一个简单的解决方案可以如下所示:

max_len = 0
max_key = ""
for key in d:
    cur_len = len(d[key])
    if cur_len>max_len:
        max_key = key
        max_len = cur_len
print max_key
你可以试试这个

import itertools

preds = {'lion': ['gazelle', 'zebra', 'antelope'], 'eagle': ['sparrow', 'mouse'], 'crocodile': ['gazelle', 'antelope', 'buffalo', 'zebra']}

byprey = sorted([(len(v), k) for k, v in preds.iteritems()], reverse=True)

num, predator = byprey[0]
print predator
对于Python3,您只需将
iteritems
更改为
items
,例如

byprey = sorted([(len(v), k) for k, v in preds.items()], reverse=True)
打印是一种功能

print (predator)

是-而且
len
是一条路要走。确保你看了所有的一个也会有帮助。谢谢!在这种情况下,我要打印的是以最长列表作为值的键的名称?@user4307103:请参见编辑。这将打印其值为最大长度列表的键。如果我的回答对您有帮助,请接受。奇怪的是,每次我运行它时,它都会产生不同的结果,但这非常接近我所需要的结果。@user4307103:不同的结果?你能解释一下吗?当你找到一个较长的列表时,你不需要设置max_len的值吗?
print (predator)