2015-10-11 24 views
-4

如何在Python中创建一个类似[1, 1, -2, -2, 3, 3, -4, -4, ...]的列表,对于给定数量的元素N如何为给定数量的元素N创建一个交替列表?

例如,如果N = 5,该列表应该返回[1, 1, -2, -2, 3]

+3

您是否尝试过什么自己了吗? –

+0

我无法绕过边界情况,即对于奇数N – Anne27

+5

那么您可以将自己的尝试添加到该问题吗?我们可以用* *来帮助您,而不是为您编写所有代码。 –

回答

2

你可以使用列表理解:

[(i // 2) + 1 if (i // 2) % 2 == 0 else -(i // 2) - 1 for i in range(N)] 

这只是计算系列中的每个号码。

演示:

>>> N = 5 
>>> [(i // 2) + 1 if (i // 2) % 2 == 0 else -(i // 2) - 1 for i in range(N)] 
[1, 1, -2, -2, 3] 
>>> N = 10 
>>> [(i // 2) + 1 if (i // 2) % 2 == 0 else -(i // 2) - 1 for i in range(N)] 
[1, 1, -2, -2, 3, 3, -4, -4, 5, 5] 
相关问题