これは私が最近よく遭遇する問題です。グーグルは答えを持っていないようですので、私はそれをスタックオーバーフローの良い人々に持ってきます。
関数の出力をリストに入力する簡単な方法を探しています。このようなもの:
fill(random.random(), 3) #=> [0.04095623, 0.39761869, 0.46227642]
これを行うために私が見つけた他の方法があります。しかし、彼らは非効率に見えるので、私は彼らに本当に満足していません。
results = []
for x in xrange(3): results.append(random.random())
#results => [0.04095623, 0.39761869, 0.46227642]
と
map(lambda x: random.random(), [None] * 3)
#=> [0.04095623, 0.39761869, 0.46227642]
提案?
すべての答えをありがとう。もっとPython風の方法があることは知っていました。
そして効率の質問に...
$ python --version
Python 2.7.1+
$ python -m timeit "import random" "map(lambda x: random.random(), [None] * 3)"
1000000 loops, best of 3: 1.65 usec per loop
$ python -m timeit "import random" "results = []" "for x in xrange(3): results.append(random.random())"
1000000 loops, best of 3: 1.41 usec per loop
$ python -m timeit "import random" "[random.random() for x in xrange(3)]"
1000000 loops, best of 3: 1.09 usec per loop