我有这个:
[{'prisonniers': [], 'sécurité': '47'},{'prisonniers': [],'sécurité':'92'}, {'prisonniers': [], 'sécurité': '38'}]
我需要在另一个列表中放入“安全性”最低的字典,在这种情况下,我需要这样做:
myList = [{'prisonniers': [], 'sécurité': '38'}]
答案 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])]