创建一个'N'对变量列表

时间:2016-09-07 21:22:16

标签: python

我有一个变量x。我需要创建一个列表,如

lst=[0,x,x,2*x,2*x,3*x,3*x,N*x,N*x]

最多N

似乎这应该是直截了当但我有点卡住了。任何帮助表示赞赏。

我不明白这个问题是如何重复的

更新....

所以我这样做了。

import numpy as np

N=4
lst=[0]
x=1.2

for i in np.arange(1,N+1):
    seed=[1,1]
    for j in seed:
        lst.append(i*x)

 lst= [0, 1.2, 1.2, 2.3999999999999999, 2.3999999999999999, 3.5999999999999996, 3.5999999999999996, 4.7999999999999998, 4.7999999999999998]

这感觉就像一个可怕的黑客。

必须有一个更优雅的解决方案。

2 个答案:

答案 0 :(得分:1)

你可以这样做

>>> n=4
>>> x=1.2
>>> lst=[ i*x for i in range(n+1) for _ in range(2 if i else 1) ]
>>> lst
[0.0, 1.2, 1.2, 2.4, 2.4, 3.5999999999999996, 3.5999999999999996, 4.8, 4.8]
>>> 

修改

或一个列表理解,没有别的

conditional aggregation

(注意如果你在python 2中使用xrange)

答案 1 :(得分:0)

您可以使用列表理解来完成此操作。它并不像你开始使用的代码那样清晰。

>>> N=4
>>> x=1.25
>>> lst = [0] + [i//2 * x for i in range(2, 2*N+2)]
>>> lst
[0, 1.25, 1.25, 2.5, 2.5, 3.75, 3.75, 5.0, 5.0]