从数组交换侧

时间:2013-11-04 03:00:59

标签: python arrays

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

2 个答案:

答案 0 :(得分:3)

试试这个:

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

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

答案 1 :(得分: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)

所以x1y1符合您的要求。但它们是元组而不是列表。如果您需要列表,那么,例如,

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

是一种方法。

Bwt如果您真正需要的只是简单地反转列表,那么@ OscarLopez的答案就容易多了: - )