美文网首页Python 运维
loops = (randrange(2,5) for x in

loops = (randrange(2,5) for x in

作者: rebirth_2017 | 来源:发表于2017-05-23 22:57 被阅读233次

最近在程序中遇到这样一个语句:
loops = (randrange(2,5) for x in xrange(randrange(3,7)))
百思不得其解,最后发现原来是这个意思,它的作用是:
生成3-6个(个数由randrange(3,7)控制)随机数,随机数的值为2-5(由randrange(2,5)控制)。

我们可以将这种形式推广运用。

>>> from random import randrange
>>> loops = (randrange(2,5) for x in xrange(randrange(3,7)))
>>> print loops
<generator object <genexpr> at 0x03532508>
>>> list(loops)
[3, 4, 2, 3]
>>> loops = (randrange(2,5) for x in xrange(randrange(3,7)))
>>> print loops
<generator object <genexpr> at 0x035325A8>
>>> list(loops)
[4, 2, 2]
>>> loops = (randrange(2,5) for x in xrange(randrange(3,7)))
>>> list(loops)
[3, 4, 2]
>>> loops = (randrange(2,5) for x in xrange(randrange(3,7)))
>>> list(loops)
[4, 4, 3, 2, 3]
>>>

从上可以发现,随机数没超过5,随机数的个数没超过6。

相关文章

网友评论

    本文标题:loops = (randrange(2,5) for x in

    本文链接:https://www.haomeiwen.com/subject/cftnxxtx.html