gpt4 book ai didi

Python 使用 if 语句对字典列表进行排序

转载 作者:行者123 更新时间:2023-11-28 19:58:26 25 4
gpt4 key购买 nike

给定一个这样的字典列表:

x = [
{'name':'a', 'student': 1 , 'age':19},
{'name':'b', 'student': 0 , 'age':10}
]

我只想在 student 等于 1 时按年龄排序。我能以某种方式将它放在下面的语句中吗?

sortedlist = sorted(x, key=lambda k: k['age'])

谢谢,

最佳答案

如果您使用 itemgetter + 生成器,而不是 lambda + 列表组件,您将获得迄今为止我发现的最佳性能。这是在 10k 元素的字典列表上测试的。与 list comp + lambda 相比,速度提高了近 30%。此外,如果您可以安全地假设“student”始终是一个有效 key 并直接访问它,您将再次获得比使用 d.get('student', 0) == 1

from operator import itemgetter

sorted((d for d in x if d['student']==1), key=itemgetter('age'))
  • 关于 lambda 与 itemgetter 的注意事项:itemgetter 更快的原因(我对此非常确定)是因为查找是在代码的 C 端完成的。而当您使用 lambda 时,您是在速度较慢的 python 端执行它。

关于Python 使用 if 语句对字典列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com