我想做的是:
my_list = []
for i in range(10):
p = random.random()
my_list.append( (p,1-p) )
我正在尝试用发电机做同样的事情。我尝试了以下方法:
my_list = [ (random.random(), 1-random.random()) for i in range(10) ]
由于它正在调用random.random()
两次,因此无法按预期工作,这会产生不同的结果。
我怎样才能使用生成器表达式?
答案 0 :(得分:6)
使用creator-function:
random_numbers = (random.random() for i in range(10))
my_list = [ (p, p-1) for p in random_numbers ]
或使用嵌套生成器:
this