查找有关特定键的词典列表的最小值

时间:2018-12-08 13:39:01

标签: python list dictionary

我有这个:

[{'prisonniers': [], 'sécurité': '47'},{'prisonniers': [],'sécurité':'92'}, {'prisonniers': [], 'sécurité': '38'}]

我需要在另一个列表中放入“安全性”最低的字典,在这种情况下,我需要这样做:

myList = [{'prisonniers': [], 'sécurité': '38'}]

4 个答案:

答案 0 :(得分:3)

min函数接受名为key的参数,它将根据可调用的key找到最小的可迭代对象。所以,试试这个:

l = [{'prisonniers': [], 'sécurité': '47'},{'prisonniers': [],'sécurité':'92'}, {'prisonniers': [], 'sécurité': '38'}]

min(l, key=lambda x:x['sécurité'])

输出将是

{'prisonniers': [], 'sécurité': '38'}

答案 1 :(得分:3)

类似于mehrdad-pedramfar's answer,但我更喜欢使用operator模块中的itemgetter来提高可读性。

设置:

from operator import itemgetter
data = [{'prisonniers': [], 'sécurité': '47'},{'prisonniers': [],'sécurité':'92'}, {'prisonniers': [], 'sécurité': '38'}]

解决方案:

>>> min(data, key=itemgetter('sécurité'))
{'prisonniers': [], 'sécurité': '38'}

答案 2 :(得分:1)

您可以使用min进行设置,将其设置为键securite以查找最小值:

inList = [{'prisonniers': [], 'securite': '47'},{'prisonniers': [],'securite':'92'}, {'prisonniers': [], 'securite': '38'}]

value = min(inList, key=lambda elem: elem['securite'])
print(value)

输出:

{'prisonniers': [], 'securite': '38'}

在上面的示例中,我将é替换为e,但在您的情况下也可以正常工作。

答案 3 :(得分:0)

您可以使用以下代码: 步骤:使用min([ i['sécurité'] for i in input_list])查找最少的“sécurité”,然后再次使用列表推导print将匹配的“sécurité”的最小值设为

aa = [print(i) for j in input_list if j['sécurité'] == min([ i['sécurité'] for i in input_list])]