2024-04-25 19:12:00 发布
网友
我有两个列表:一个包含一组x点,另一个包含y点。Python设法混合x点,或者用户可以。我需要按从低到高的顺序对它们进行排序,然后移动y点以跟随它们的x对应项。它们在两个单独的列表中。。我该怎么做?
>>> xs = [5, 2, 1, 4, 6, 3] >>> ys = [1, 2, 3, 4, 5, 6] >>> xs, ys = zip(*sorted(zip(xs, ys))) >>> xs (1, 2, 3, 4, 5, 6) >>> ys (3, 2, 6, 4, 1, 5)
你可以压缩列表并对结果进行排序。默认情况下,排序元组应在第一个成员上排序。
>>> xs = [3,2,1] >>> ys = [1,2,3] >>> points = zip(xs,ys) >>> points [(3, 1), (2, 2), (1, 3)] >>> sorted(points) [(1, 3), (2, 2), (3, 1)]
然后再打开:
>>> sorted_points = sorted(points) >>> new_xs = [point[0] for point in sorted_points] >>> new_ys = [point[1] for point in sorted_points] >>> new_xs [1, 2, 3] >>> new_ys [3, 2, 1]
>>> import numpy >>> sorted_index = numpy.argsort(xs) >>> xs = [xs[i] for i in sorted_index] >>> ys = [ys[i] for i in sorted_index]
如果你能使用numpy.array
>>> xs = numpy.array([3,2,1]) >>> xs = numpy.array([1,2,3]) >>> sorted_index = numpy.argsort(xs) >>> xs = xs[sorted_index] >>> ys = ys[sorted_index]
你可以压缩列表并对结果进行排序。默认情况下,排序元组应在第一个成员上排序。
然后再打开:
如果你能使用numpy.array
相关问题 更多 >
编程相关推荐