【发布时间】:2010-02-08 15:49:29
【问题描述】:
是否有一种简单的(意味着不滚动自己的排序功能)在 Python 中对并行列表进行排序无需不必要的复制?例如:
foo = range(5)
bar = range(5, 0, -1)
parallelSort(bar, foo)
print foo # [4,3,2,1,0]
print bar # [1,2,3,4,5]
我已经看到使用 zip 的示例,但是如果可以轻松避免,将所有数据从并行列表复制到元组列表并再次返回似乎很愚蠢。
【问题讨论】:
-
你认为这个parallelSort会做什么?从您的 cmets 看来,它按降序对 foo 进行排序,按升序对 bar 进行排序——对吗?
-
@Paul:它对 bar 进行排序并同步操作 foo。
-
如果最初
foo是[2,4,6,10,8]而bar是[3,7,9,5,1],parallelSort会给出什么? -
@Kenny:bar 现在已排序并等于 [1,3,5,7,9]。 foo 被同步操作,现在等于 [8,2,10,4,6]。