延迟列表项的评估

时间:2016-05-16 15:19:22

标签: python

我想生成一个范围内的随机整数列表:

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之前执行了list

我尝试用randint推迟lambda

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

但失败了。

所以我想知道是否可以延迟项目的评估(在这种情况下为randint),然后在列表组装后触发它?

2 个答案:

答案 0 :(得分: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 :(得分:-1)

random_array = map(lambda _: randint(lower, upper), range(length))