使用列表理解
一个人为的例子,试图了解Python的列表理解使用列表理解
我要产生1〜100 此范围内的1000个随机偶数的名单是我
Python中生成随机偶数import random
list = [random.randint(1,100) for _ in range(1,1000) if _ %2 ==0]
我无法弄清楚如何检查中的randint()for循环的结果。
我知道这可以用random.randrange(x,y,2)
或其他机制来完成。我想了解我能否以列表理解的方式来完成。
当然你可以使用列表理解,只是不会这样。你可以做的却是写,产生一个随机甚至数的函数,然后执行:
[your_func() for _ in range(1000)]
your_func
在这种情况下可能是:
while True:
n = random.randint(1, 100)
if n%2 == 0:
yield n
不过,当然,这是使用random.randrange(2, 101, 2)
几乎比你指出的可能性更好。
[random.randrange(2, 101, 2) for _ in range(1000)]
这是否意味着我不能在for循环体内引用[RANDE中的x操作]中的操作结果? –
@PavanKMutt正确。 –
@PavanKMutt *不是for-loop *,那是*列表理解*。他们是不同的。是的,python不允许你在理解中指定 –
我建议你重新检查代码,因为当我打印的'list',它给了这都是奇数和偶数 –
在一个修真列表赋值给变量的伎俩随机数的输出在[val]中使用'var',所以如果x%2 == 0],你的表达式变成[[x for _ in xrange(1000)for x in [random.randint(1,100)]'(注意顺序的事情)。这将“[random.randint(1,100)]'中的唯一元素赋予'x'以供您的特定用途 –
@PhuNgo ooh,这是真的。我建议你把它写成答案(尽管我会放弃'xrange' - Python3已经出现了十多年了)。 –