从Python字典中的键中删除元素

从Python字典中的键中删除元素,python,dictionary,key,element,Python,Dictionary,Key,Element,我有一个过程,可以找到字典中包含最多项的键。如何删除字典中的元素,使其只打印出来 *更新: 我刚刚发现我的程序不正确。我试图找到保存最多项的键,然后返回相应的键 目标: “d” 电流输出: ('d',['Finch','Owl','Penguin']) 对len()上的键的值进行排序将得到所需的结果 >>> bird = { 'a': ['Parrot'], 'b': ['Columbidae'], 'c': ['Hummingbird'], 'd': ['kiwi', 'Cr

我有一个过程,可以找到字典中包含最多项的键。如何删除字典中的元素,使其只打印出来

*更新: 我刚刚发现我的程序不正确。我试图找到保存最多项的键,然后返回相应的键

目标:

“d”

电流输出:

('d',['Finch','Owl','Penguin'])


len()
上的
键的值进行排序将得到所需的结果

>>> bird = { 'a': ['Parrot'], 'b': ['Columbidae'], 'c': ['Hummingbird'], 'd': ['kiwi', 'Crow', 'Sparrow']}

>>> print sorted(bird.keys(), key = lambda x:len(bird[x]))[-1]
>>> d
您可以在函数中嵌入这一行,如下所示:

bird = { 'a': ['Parrot'], 'b': ['Columbidae'], 'c': ['Hummingbird']}

bird['d'] = ['Finch']
bird['d'].append('Owl')
bird['d'].append('Penguin')

def func(a):
    return sorted(bird.keys(), key = lambda x:len(bird[x]))[-1]

print func(bird)
或者,正如Padraic所建议的,将
max
函数与lambda一起使用可以以最小的开销完成您的工作:

def func(a):
    return max(bird.keys(), key = lambda x:len(bird[x]))

排序肯定不是获取所需内容的方法,您需要的键的值是列表中最长的,因此请在
dict.items
上使用
max
将值的长度用作max的键,然后返回第一个元素:

def func(d):
    return max(d.iteritems(), key=lambda x: len(x[1]))[0]
输出:

In [4]: func(bird)
Out[4]: 'd'
您也可以在lambda中进行查找,但items可能是最快的:

def func(d):
    return max(d, key=lambda x: len(d[x]))

打印函数(bird)[0]
?或者
return max(stor)
?您的
max()
函数将按字母顺序查找最高键。你也可以在这里使用
returnmax(a)
。我更新了我的问题。我刚刚发现我的程序不正确。我试图找到保存最多项的键,然后返回相应的键@BhargavRaoI希望能够调用该函数,以便它能够返回包含最多项的键。这是
O(n log n)
,并创建一个全新的列表,只需更新一个元素,@padraickenningham
def func(d):
    return max(d, key=lambda x: len(d[x]))