插件窝 干货文章 Python列表排序:如何用lambda函数对包含元组的列表按元组首元素排序?

Python列表排序:如何用lambda函数对包含元组的列表按元组首元素排序?

排序 函数 sorted lambda 609    来源:    2025-03-16

在Python中,你可以使用 sorted() 函数结合 lambda 函数来对包含元组的列表按元组的第一个元素进行排序。lambda 函数允许你定义一个简单的匿名函数,用于指定排序的键。

假设你有一个包含元组的列表,如下所示:

data = [(3, 'apple'), (1, 'banana'), (2, 'cherry')]

你可以使用 sorted() 函数和 lambda 函数来按元组的第一个元素进行排序:

sorted_data = sorted(data, key=lambda x: x[0])

在这个例子中,lambda x: x[0] 是一个匿名函数,它接受一个元组 x 并返回元组的第一个元素 x[0]sorted() 函数会根据这个返回值对列表进行排序。

排序后的结果将是:

[(1, 'banana'), (2, 'cherry'), (3, 'apple')]

如果你想在原地修改列表(即不创建新的列表),可以使用 list.sort() 方法:

data.sort(key=lambda x: x[0])

这样,data 列表将被原地排序,结果与上面相同。

总结一下,使用 lambda 函数对包含元组的列表按元组首元素排序的代码如下:

data = [(3, 'apple'), (1, 'banana'), (2, 'cherry')]

# 使用 sorted() 创建新的排序列表
sorted_data = sorted(data, key=lambda x: x[0])
print(sorted_data)  # 输出: [(1, 'banana'), (2, 'cherry'), (3, 'apple')]

# 或者使用 sort() 原地排序
data.sort(key=lambda x: x[0])
print(data)  # 输出: [(1, 'banana'), (2, 'cherry'), (3, 'apple')]

这两种方法都可以实现按元组首元素排序的需求。