我有一个对象列表,我想基于并行数组对它们进行排序.因此,当我操作数据列表时,我构造了一个并行数组(其中该列表中的每个条目对应于原始列表中的条目).然后(假设并行数组用数字填充)
list_a = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 )
list_b = (4, 2, 5, 6, 1, 7, 3, 9, 0, 8 )
Run Code Online (Sandbox Code Playgroud)
我想基于并行数组值对原始对象列表进行排序,以便原始列表按另一个数组中的数值按升序排序.有没有办法在python中内置这个?
sort_a_by_b(list_a, list_b)
Run Code Online (Sandbox Code Playgroud)
预期结果将是:
list_a_sorted_by_b = (8, 4, 1, 6, 0, 2, 3, 5, 9, 7 )
Run Code Online (Sandbox Code Playgroud)
>>> list_a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list_b = [4, 2, 5, 6, 1, 7, 3, 9, 0, 8]
>>>
>>> import operator
>>>
>>> [k for k, v in sorted(zip(list_a, list_b), key=operator.itemgetter(1))]
[8, 4, 1, 6, 0, 2, 3, 5, 9, 7]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |