【问题标题】:How to sort list within a list? [duplicate]如何在列表中对列表进行排序? [复制]
【发布时间】:2013-05-02 10:35:43
【问题描述】:

我想根据第一项对我的列表进行排序,例如:

fruits = \
[['Mango', 6, 5, 8.0],
 ['Banana', 2.0, 5, 8.9, 7],
 ['Pineapple', 4, 6.8, 9],
 ['Apple', 3.9, 6, 7, 2]]

这样整理:

fruits = \
[['Apple', 3.9, 6, 7, 2],
 ['Banana', 2.0, 5, 8.9, 7],
 ['Mango', 6, 5, 8.0],
 ['Pineapple', 4, 6.8, 9]]

我知道我必须使用sort() 函数,但我不知道如何以正确的方式使用它来产生我想要的输出。

【问题讨论】:

  • 列表的第一个元素是字符串吗?
  • @Volatility 绝对是

标签: python


【解决方案1】:

您的问题到底是什么? sort() 已经按第一个元素排序。

In [14]: fruits = [["Mango", 6,5,8.0],
         ["Banana", 2.0,5,8.9,7],
         ["Pineapple", 4,6.8,9],
         ["Apple", 3.9,6,7,2]]

In [15]: fruits.sort()

In [16]: fruits
Out[16]: 
[['Apple', 3.9, 6, 7, 2],
 ['Banana', 2.0, 5, 8.9, 7],
 ['Mango', 6, 5, 8.0],
 ['Pineapple', 4, 6.8, 9]]

如果您的项目是类或变量,则应根据您的排序需求实现它们的比较方法(__ge____le____gt____lt__)。

请记住,fruits.sort() 会修改列表,如果您想要新的排序副本,请使用 sorted(fruits)

【讨论】:

  • 好点...我忘了一秒钟
  • @fortran 我怎么能错过这样的事情?我是一个真正的蟒蛇菜鸟。谢谢!
  • 好吧,它发生了...... Python 在大多数情况下都擅长清晰,但在这种情况下,像 sorted 这样的全局函数或列表方法 sort 可能会令人困惑。
猜你喜欢
  • 2020-02-10
  • 2013-12-06
  • 2012-12-10
  • 1970-01-01
  • 2021-02-05
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多