Python3 使用 Lambda 和 Sort 对元组列表进行排序

标签 python list sorting lambda

<分区>

我有一个按第二个元素排序的元组列表,如下所示:

[('7', 10), ('2', 9), ('8', 9)]

我想像这样按第一个元素对它们进行排序:

[('2',9),('7', 10),('8', 9)]

我试过:

test_val = [('7', 10), ('2', 9), ('8', 9)]
test_val.sort(key=lambda x: x[0])

我从 here 中找到的

但是,列表未排序。

真实数据示例:

尝试之前:

[('7', 10), ('2', 9), ('8', 9), ('6', 8), ('24', 8), ('3', 7), ('5', 7), ('9', 6), ('35', 6), ('15', 5), ('16', 5), ('1', 4), ('14', 4), ('17', 3), ('19', 3), ('12', 2), ('39', 2), ('26', 1), ('25', 1), ('22', 0)]

尝试后:

[('1', 4), ('12', 2), ('14', 4), ('15', 5), ('16', 5), ('17', 3), ('19', 3), ('2', 9), ('22', 0), ('24', 8), ('25', 1), ('26', 1), ('3', 7), ('35', 6), ('39', 2), ('5', 7), ('6', 8), ('7', 10), ('8', 9), ('9', 6)]

最佳答案

列表太有序了。请注意,您的排序键是一个字符串,而不是一个整数。也许你想要的是

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

关于Python3 使用 Lambda 和 Sort 对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40856140/

相关文章:

python - 在 Python 中重新格式化制表符分隔的数据

c - 冒泡排序二维数组

mysql - 按列对行进行排序,然后按另一列对排序后的行进行排序

c - 为什么快速排序代码会破坏稳定性?

python - 数据分析 Pandas SettingWithCopyWarning

Python字符串编码方法

python - 从文本文件中检索随机预格式化的文本

list - 列表中的 Knockoutjs 列表选择绑定(bind)

java - 如何使用属性名称搜索java对象列表

python - 从 groupby 返回列表的最有效方法