python实现对数组按指定列排序

admin 轻心小站 关注 LV.19 运营
发表于Python交流版块 教程

在Python中,如果你需要对一个二维数组(通常是一个列表的列表)按照指定的列进行排序,你可以使用内置的sorted()函数结合列表推导式来实现。这里是一个简单的例子来说明如何按照指定列对二维数组进行

在Python中,如果你需要对一个二维数组(通常是一个列表的列表)按照指定的列进行排序,你可以使用内置的sorted()函数结合列表推导式来实现。这里是一个简单的例子来说明如何按照指定列对二维数组进行排序:

# 定义一个二维数组(列表的列表)
two_d_array = [
    ['Alice', 24, 64000],
    ['Bob', 30, 54000],
    ['Cathy', 28, 72000],
    ['David', 22, 40000]
]

# 按照第二列(年龄)进行升序排序
sorted_array = sorted(two_d_array, key=lambda x: x[1])

# 打印排序后的数组
for row in sorted_array:
    print(row)

输出将会是按照年龄从小到大排序的二维数组:

['David', 22, 40000]
['Alice', 24, 64000]
['Bob', 30, 54000]
['Cathy', 28, 72000]

在这个例子中,sorted()函数接收了一个key参数,它是一个函数,用于从数组的每个子列表中提取用于排序的值。lambda x: x[1]是一个匿名函数,它接受一个参数x(代表数组的一行),并返回x[1](即年龄)作为排序的依据。

如果你想要按照降序排序,可以在sorted()函数中添加reverse=True参数:

# 按照年龄降序排序
sorted_array_desc = sorted(two_d_array, key=lambda x: x[1], reverse=True)

# 打印降序排序后的数组
for row in sorted_array_desc:
    print(row)

这将会输出按照年龄从大到小排序的二维数组。

如果你需要根据多列进行排序(例如,首先按年龄升序,然后在年龄相同的情况下按工资降序),你可以在key函数中返回一个包含多个排序依据的元组:

# 按照年龄升序和工资降序排序
sorted_array_multi_key = sorted(two_d_array, key=lambda x: (x[1], -x[2]))

# 打印多关键字排序后的数组
for row in sorted_array_multi_key:
    print(row)

这个例子中,(x[1], -x[2])表示先按照年龄升序排序,如果年龄相同,则按照工资降序排序(工资取负值是为了实现降序)。

以上就是在Python中对二维数组按指定列进行排序的方法。通过这些方法,你可以灵活地对数据进行排序,以满足不同的需求。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: python实现对数组按指定列排序

粉丝

0

关注

0

收藏

0

已有0次打赏