首页  >  文章  >  后端开发  >  如何按多个字段对 Python 列表进行排序?

如何按多个字段对 Python 列表进行排序?

Barbara Streisand
Barbara Streisand原创
2024-11-23 18:23:10666浏览

How to Sort a Python List by Multiple Fields?

按多个字段对 Python 列表进行排序

按单个字段对 Python 列表进行排序是一项常见任务,但如果您需要怎么办按多个字段排序?

考虑从排序的 CSV 创建的以下列表file:

list1 = sorted(csv1, key=operator.itemgetter(1))

这按第二个字段对列表进行排序。但是,如果您想先按第一个字段排序,然后按第二个字段排序怎么办?

解决方案是使用 lambda 函数 作为排序()函数的关键参数。 lambda 函数是一个匿名函数,可用于定义简单的排序标准。在这种情况下,lambda 函数采用单个参数,该参数表示列表中的一个元素,并返回一个包含要排序的两个字段的元组。

例如,要按第一个和第二个字段,您可以使用以下 lambda 函数:

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))

此 lambda 函数返回一个包含列表元素的第一个和第二个字段的元组。然后列表按该元组排序,这会导致列表首先按第一个字段排序,然后按第二个字段排序。

您还可以使用 lambda 函数按一个字段升序和另一个字段降序排序。例如,要按第一个字段升序和第二个字段降序对列表进行排序,可以使用以下 lambda 函数:

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))

此 lambda 函数返回一个包含列表元素的第一个字段和第二个字段的负值。然后列表按该元组排序,这会导致列表按第一个字段升序和第二个字段降序排序。

以上是如何按多个字段对 Python 列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn