Python 根据第0个列表的argsort对嵌套列表中的列表进行排序
根据列表中的第一个列表对列表进行排序的最简洁的方法是什么 排序前Python 根据第0个列表的argsort对嵌套列表中的列表进行排序,python,arrays,list,sorting,numpy,Python,Arrays,List,Sorting,Numpy,根据列表中的第一个列表对列表进行排序的最简洁的方法是什么 排序前 >>> list_of_things = [[100,300,200],[t,u,v]] 排序后 >>> [[100,200,300],[t,v,u]] 到目前为止,我使用搜索找到了一个可以用来排序的索引 >>> import numpy as np >>> sort_index=np.argsort(list_of_things[0]) 但我还没有找
>>> list_of_things = [[100,300,200],[t,u,v]]
排序后
>>> [[100,200,300],[t,v,u]]
到目前为止,我使用搜索找到了一个可以用来排序的索引
>>> import numpy as np
>>> sort_index=np.argsort(list_of_things[0])
但我还没有找到一种pythonic方法在sort_索引上同时为两个子列表编制索引
有什么想法吗?
谢谢大家!
print(arr)
array([['100', '300', '200'],
['t', 'u', 'v']],
dtype='<U21')
现在,只需使用numpy索引
:
arr = arr[:, idx]
print(arr)
array([['100', '200', '300'],
['t', 'v', 'u']],
dtype='<U21')
arr=arr[:,idx]
打印(arr)
数组([[100',200',300'],
[t',v',u']],
dtype='从一个第三方库中尝试一个工具,它可以并行地对iterables进行排序
首先安装库:
> pip install more_itertools
代码
from more_itertools import sort_together
iterables = [[100, 300, 200], ["t", "u", "v"]]
sort_together(iterables)
# [(100, 200, 300), ('t', 'v', 'u')]
默认情况下,所有iterables均按第0个索引排序。此排序优先级可通过键列表
参数进行调整
有关详细信息,请参阅。是否要根据列表[0]的argsorted值对列表[1:n]进行排序?
from more_itertools import sort_together
iterables = [[100, 300, 200], ["t", "u", "v"]]
sort_together(iterables)
# [(100, 200, 300), ('t', 'v', 'u')]