基于并行数组的python排序

标签 python sorting

<分区>

我有一个对象列表,我想根据并行数组对它们进行排序。因此,当我对数据列表进行操作时,我构建了一个并行数组(其中该列表中的每个条目都对应于原始列表中的一个条目)。然后(假设并行数组中填满了数字)

list_a = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 )
list_b = (4, 2, 5, 6, 1, 7, 3, 9, 0, 8 )

我想根据并行数组的值对原始对象列表进行排序,以便原始列表按另一个数组中的数值升序排序。有没有办法在 python 中内置此功能?

sort_a_by_b(list_a, list_b)

预期结果为:

list_a_sorted_by_b = (8, 4, 1, 6, 0, 2, 3, 5, 9, 7 )

最佳答案

>>> 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]

关于基于并行数组的python排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618243/

相关文章:

python - Scrapy:所有的爬虫都失败了。有语法错误的爬虫

c# - 使用 .NET 随机化数组的最佳方法

python - 标准化 json 列并与数据帧的其余部分连接

python - 如何在 pyQt 中的按钮和选项卡小部件之间创建插槽或信号

python - Python 中的插入排序不起作用

java - CompareToBuilder 的这种使用是否被认为效率低下?

c++ - 在 C++ 中对多个链接数组进行排序

python - Numpy:通过另一个数组的唯一性在一个数组中查找对应关系,任意长度

python - 按行降序排序 Nd Numpy 数组

python - 在 sympy 中,使用规范交换关系简化表达式