Xから始まりYでインクリメントする10個の値を持つ配列を初期化したいとします。range()
は値の数ではなく最大値を与えるために必要です。Pythonでの配列の初期化
次のように私は、ループ内でこれを行うことができます:
a = []
v = X
for i in range(10):
a.append(v)
v = v + Y
しかし、私はこれを行うにはかわいいのpython 1ライナーがあります確信している...
Xから始まりYでインクリメントする10個の値を持つ配列を初期化したいとします。range()
は値の数ではなく最大値を与えるために必要です。Pythonでの配列の初期化
次のように私は、ループ内でこれを行うことができます:
a = []
v = X
for i in range(10):
a.append(v)
v = v + Y
しかし、私はこれを行うにはかわいいのpython 1ライナーがあります確信している...
>>> x = 2
>>> y = 3
>>> [i*y + x for i in range(10)]
[2, 5, 8, 11, 14, 17, 20, 23, 26, 29]
あなたがこれを使用することができます:私が正しくあなたの質問を理解している場合
>>> x = 3
>>> y = 4
>>> range(x, x+10*y, y)
[3, 7, 11, 15, 19, 23, 27, 31, 35, 39]
:
Y = 6
a = [x + Y for x in range(10)]
編集:ああ、私は質問を誤解しています。続ける。
Y=6
X=10
N=10
[y for x,y in zip(range(0,N),itertools.count(X,Y))]
[10, 16, 22, 28, 34, 40, 46, 52, 58, 64]
そして、さらに別の方法でそれを行うためのちょうど別の方法
map(lambda (x,y):y,zip(range(0,N),itertools.count(10,Y)))
[10, 16, 22, 28, 34, 40, 46, 52, 58, 64]
そして、まだ別の方法
import numpy
numpy.array(range(0,N))*Y+X
array([10, 16, 22, 28, 34, 40, 46, 52, 58, 64])
そして、これでも
C=itertools.count(10,Y)
[C.next() for i in xrange(10)]
[10, 16, 22, 28, 34, 40, 46, 52, 58, 64]
[x+i*y for i in xrange(1,10)]
は
は、xとy –