1

我在 X 和 Y 中有数千个数据。我正在尝试绘制插值图,但要开始绘制它需要从负值开始。

x = [15000,14000,13000,12000,11000,0,-1000,-10000,-15000]
y = [1,1,1,1,1,0,-1,-1,-1]

我怎样才能把它变成这种格式

x = [-15000,-10000,-1000,0,11000,12000,13000,14000,15000]
y = [-1,-1,-1,0,1,1,1,1,1]
4

2 回答 2

3

尝试这个:

x = x[::-1]
y = y[::-1]

我称之为“反转”一个列表,而不是“交换”它,但你明白了。

于 2013-11-04T03:02:47.683 回答
1

假设您确实需要对列表进行排序x,并且还以与置换值y相同的方式移动值x,请看一下:

>>> x = [15000,14000,13000,12000,11000,0,-1000,-10000,-15000]
>>> y = [1,1,1,1,1,0,-1,-1,-1]
>>> x1, y1 = zip(*sorted(zip(x, y)))
>>> x1
(-15000, -10000, -1000, 0, 11000, 12000, 13000, 14000, 15000)
>>> y1
(-1, -1, -1, 0, 1, 1, 1, 1, 1)

所以x1并且y1在您想要的订单中。但它们是元组而不是列表。如果您需要列表,那么,例如,

x1, y1 = map(list, zip(*sorted(zip(x, y))))

是一种方法。

顺便说一句,如果您真正需要的只是简单地反转列表,那么@OscarLopez 的答案要容易得多:-)

于 2013-11-04T03:08:18.663 回答