如何按内部列表的特定索引对列表列表进行排序?
- 2024-12-25 08:50:00
- admin 原创
- 214
问题描述:
我有一个列表。例如,
[
[0,1,'f'],
[4,2,'t'],
[9,4,'afsd']
]
如果我想根据内部列表的字符串字段对外部列表进行排序,在 python 中该怎么做?
解决方案 1:
这是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 函数速度较慢
解决方案 2:
到位
>>> l = [[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> l.sort(key=lambda x: x[2])
未使用排序:
>>> sorted(l, key=lambda x: x[2])
解决方案 3:
Itemgetter 允许您按多个条件/列进行排序:
sorted_list = sorted(list_to_sort, key=itemgetter(2,0,1))
解决方案 4:
也可以通过 lambda 函数实现多个条件
sorted_list = sorted(list_to_sort, key=lambda x: (x[1], x[0]))
解决方案 5:
array.sort(key = lambda x:x[1])
您可以使用此代码片段轻松进行排序,其中 1 是元素的索引。
解决方案 6:
像这样:
import operator
l = [...]
sorted_list = sorted(l, key=operator.itemgetter(desired_item_index))
解决方案 7:
我认为 lambda 函数可以解决你的问题。
old_list = [[0,1,'f'], [4,2,'t'],[9,4,'afsd']]
#let's assume we want to sort lists by last value ( old_list[2] )
new_list = sorted(old_list, key=lambda x: x[2])
#Resulst of new_list will be:
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
解决方案 8:
更容易理解(Lambda 实际上在做什么):
ls2=[[0,1,'f'],[4,2,'t'],[9,4,'afsd']]
def thirdItem(ls):
#return the third item of the list
return ls[2]
#Sort according to what the thirdItem function return
ls2.sort(key=thirdItem)
解决方案 9:
**old_list = [[0,1,'f'], [4,2,'t'],[9,4,'afsd']]
#let's assume we want to sort lists by last value ( old_list[2] )
new_list = sorted(old_list, key=lambda x: x[2])**
如果我错了请纠正我,但是 'x[2]' 不是调用列表中的第 3 项,而是嵌套列表中的第 3 项吗?应该是 x2 吗?
解决方案 10:
使用自定义键功能,您可以轻松地根据需要对任何列表进行排序:
L = [[0,1,'f'], [4,2,'t'], [9,4,'afsd']]
def sorter(lst):
return lst[2].casefold()
L.sort(key=sorter)
# result: [[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
解决方案 11:
对多维数组进行排序 在此处执行
points=[[2,1],[1,2],[3,5],[4,5],[3,1],[5,2],[3,8],[1,9],[1,3]]
def getKey(x):
return [x[0],-x[1]]
points.sort(key=getKey)
print(points)
解决方案 12:
确保要排序的列表中没有任何 null 或 NaN 值。如果有 NaN 值,则排序将出错,从而影响非 null 值的排序。
检查Python:排序函数在存在 nan 时中断
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD