如何按内部列表的特定索引对列表列表进行排序?

新手上路,请多包涵

我有一个列表列表。例如,

 [
[0,1,'f'],
[4,2,'t'],
[9,4,'afsd']
]

如果我想按内部列表的字符串字段对外部列表进行排序,您将如何在 python 中执行此操作?

原文由 oldspice 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 164
2 个回答

这是 itemgetter 的工作

>>> from operator import itemgetter
>>> L=[[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted(L, key=itemgetter(2))
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]

也可以在这里使用 lambda 函数,但是在这种简单的情况下 lambda 函数速度较慢

原文由 John La Rooy 发布,翻译遵循 CC BY-SA 2.5 许可协议

到位

>>> l = [[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> l.sort(key=lambda x: x[2])

没有使用排序的地方:

 >>> sorted(l, key=lambda x: x[2])

原文由 mouad 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题