2016-05-16 3 views
0

遅延私は範囲内のランダムな整数のリストを生成するリスト項目の評価

from random import randint 

lower = 0 
upper = 20 
length = 10 

random_array = [randint(lower, upper) for _ in range(length)] 

私はそれはエレガントであるとは思わないと私は別の解決策を考え出す:

random_array = [randint(lower, upper)] * length 

しかし、同じ整数のリストを生成します。

より前にrandintが実行されている可能性があります。

私はlambdarandintをオフに入れてみてください:

random_array = [(lambda: randint(lower, upper))()] * length 

が、失敗。

したがって、アイテム(この場合はrandint)の評価を遅らせることができるかどうかを知りたいのですが、リストの組み立て後にトリガーすることができますか?

+1

これはどのように重複しているのですか? OPは数字が一意である必要はありません。 – Selcuk

+0

@Selcukいいえ、そうではありません。 – Wentao

+0

リンクされた複製は、質問者の特定の問題と一致しません。これはもっと便利かもしれません:http://stackoverflow.com/questions/240178/python-list-of-lists-changes-reflected-across-sublists-予期せず – JETM

答えて

0
from random import randint 

lower = 0 
upper = 20 
length = 10 

random_array = list() 
for _ in range(length): 
    random_array.append(randint(lower, upper)) 
print random_array 
-1
random_array = map(lambda _: randint(lower, upper), range(length)) 
関連する問題