从 Python 字典中的键中删除元素
Remove elements from key in Python dictionary
我有一个程序可以找到字典中包含最多项目的键。我如何删除字典中的元素以便它只打印出来
*更新:
我刚刚发现我的程序不正确。我试图找到包含最多项目的键,然后 return 相应的键
目标:
'd'
bird = { 'a': ['Parrot'], 'b': ['Columbidae'], 'c': ['Hummingbird']}
bird['d'] = ['Finch']
bird['d'].append('Owl')
bird['d'].append('Penguin')
def func(a):
stor =[]
for itterate in a.items():
stor.append(itterate)
return max(stor)
print func(bird)
当前输出:
('d', ['Finch', 'Owl', 'Penguin'])
根据值的 len()
对 keys
进行排序会得到您想要的结果。
>>> 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
,使用值的长度作为键最大然后 return 第一个元素 :
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]))
我有一个程序可以找到字典中包含最多项目的键。我如何删除字典中的元素以便它只打印出来
*更新: 我刚刚发现我的程序不正确。我试图找到包含最多项目的键,然后 return 相应的键
目标:
'd'
bird = { 'a': ['Parrot'], 'b': ['Columbidae'], 'c': ['Hummingbird']}
bird['d'] = ['Finch']
bird['d'].append('Owl')
bird['d'].append('Penguin')
def func(a):
stor =[]
for itterate in a.items():
stor.append(itterate)
return max(stor)
print func(bird)
当前输出:
('d', ['Finch', 'Owl', 'Penguin'])
根据值的 len()
对 keys
进行排序会得到您想要的结果。
>>> 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
,使用值的长度作为键最大然后 return 第一个元素 :
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]))