gpt4 book ai didi

python - 在列表中排序列表

转载 作者:行者123 更新时间:2023-11-28 20:47:14 28 4
gpt4 key购买 nike

我在一个列表中有数千个列表。

数千个列表中的每一个都包含 [name, gender, age],name 和 gender 是一个 str,age 是一个 int。

我想按年龄降序对所有列表进行排序。

我该怎么做?

最佳答案

list.sort允许您指定一个,它本质上是在对列表进行排序时用于列表中每个项目的东西。该键是一个将项目作为参数的函数。默认情况下,它是标识,因此它始终返回原始对象,但您可以通过指定不同的函数轻松更改它。

在您的情况下,您需要返回内部列表中的第 3 项:

biglist.sort(key=lambda x: x[2])

请注意,当年龄不是唯一的(通常不是)时,这不会指定一个好的顺序。因此,您可能想要指定第二个订单,例如使用名称:

biglist.sort(key=lambda x: (x[2], x[0]))

要获得降序,您必须在排序调用中进一步设置 reverse=True:

biglist.sort(key=lambda x: (x[2], x[0]), reverse=True)

请注意,这样做也会影响名字的顺序,因此您会得到年龄降序的名字。如果您不希望这样,您可以对列表进行两次排序(分开;首先是姓名,然后是年龄降序),或者您可以稍微耍点花招:您可以假设在世的人不会超过 200 岁——或者说 1000 岁 super 安全——所以您可以按 1000-age 进行升序排序,以按 age 进行降序排序:

biglist.sort(key=lambda x: (1000 - x[2], x[0]))

关于python - 在列表中排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301786/

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