python - 如何按列对多维数组进行排序?

标签 python arrays list sorting

有没有办法使用 sort() 方法或任何其他方法按列对列表进行排序?假设我有 list :

[
[John,2],
[Jim,9],
[Jason,1]
]

我想对其进行排序,使其看起来像这样:

[
[Jason,1],
[John,2],
[Jim,9],
]

最好的方法是什么?

编辑:

现在我遇到了索引超出范围错误。我有一个二维数组,可以说 1000 行 b 3 列。我想根据第三列对其进行排序。这是正确的代码吗?

sorted_list = sorted(list_not_sorted, key=lambda x:x[2])

最佳答案

是的。 sorted 内置接受 key 参数:

sorted(li,key=lambda x: x[1])
Out[31]: [['Jason', 1], ['John', 2], ['Jim', 9]]

注意 sorted 返回一个新列表。如果您想就地排序,请使用列表的 .sort 方法(也方便地接受 key 参数)。

或者,

from operator import itemgetter
sorted(li,key=itemgetter(1))
Out[33]: [['Jason', 1], ['John', 2], ['Jim', 9]]

Read more on the python wiki .

关于python - 如何按列对多维数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183069/

相关文章:

python : How to create columns from words occurred in a column?

python - 将 Python 日期时间拆分为小时对齐的 block

Java查找数组索引中的最后一个成员

java - 尝试在泛型中使用原始类型时出现奇怪的编译时行为

python - 创建 panda 数据框并在 for 循环中 append 值

python - 在 i3 中使用 disown 时 Python 退出时子进程终止

Python 时区 - pytz.common_timezones 有太多

asp.net-mvc - MVC 是否不会对实现 IEnumerable<T> 的模型上的其他属性进行 json 序列化?

Python 对象列表更新

java - 从 LinkedList 中删除 "links"?