在python中创建随机长度的列表
我正在用python编写一个程序。在其中,我想生成一个列表。此列表将从一开始,然后递增一个在python中创建随机长度的列表,python,python-2.7,Python,Python 2.7,我正在用python编写一个程序。在其中,我想生成一个列表。此列表将从一开始,然后递增一个[1、2、3、4、5等] 但是,我希望列表的长度是随机的,介于3到8个数字之间。例如,在一次运行中,列表可能会生成[1,2,3,4],在另一次运行中,列表可能会生成1,2,3,4,5,6],在另一次运行中,列表可能会生成[1,2,3],依此类推 我知道如何使一个列表生成随机数,但不能使它以随机长度递增数字。谢谢你抽出时间。顺便说一下,我使用的是Python2.7。您可以使用range()实现,其中第一个参数
[1、2、3、4、5等]
但是,我希望列表的长度是随机的,介于3到8个数字之间。例如,在一次运行中,列表可能会生成[1,2,3,4]
,在另一次运行中,列表可能会生成1,2,3,4,5,6]
,在另一次运行中,列表可能会生成[1,2,3]
,依此类推
我知道如何使一个列表生成随机数,但不能使它以随机长度递增数字。谢谢你抽出时间。顺便说一下,我使用的是Python2.7。您可以使用range()实现,其中第一个参数是start,第二个参数是random length
import random
start = 1
end = random.randint(3, 8)
l = range(start, end + 1)
import random
range(1, random.randint(3, 8))
只是
如果在
randint
的底端指定4,在顶部指定9,则最多可以得到8个数字您需要执行此操作,因为范围从1开始
>>> import random
>>> range(1, random.randint(4,4))
[1, 2, 3]
>>> range(1, random.randint(9,9))
[1, 2, 3, 4, 5, 6, 7, 8]
>>> rand_list = range(1, random.randint(4,9))
>>> rand_list
[1, 2, 3, 4, 5, 6, 7]
第一个论点是出发点。第二个参数是停止。在stop==3
的情况下,许多其他答案有时只返回两个数字
>>> range(1,3)
[1, 2]
>>> range(1,4)
[1, 2, 3]
>>> range(1,8)
[1, 2, 3, 4, 5, 6, 7]
>>> range(1,9)
[1, 2, 3, 4, 5, 6, 7, 8]
itertools方法-这也意味着如果您不需要实现列表,那么您不必:
from itertools import count, islice
from random import randint
mylist = list(islice(count(1), randint(3, 8)))
由于count
是一个每次递增1的生成器,因此我们使用islice
来“限制”从中获取的项目总数,然后构建一个列表。您需要random.randint(3,9)
在那里。这有时只会生成两个数字。感谢您指出:-)希望这个小问题可以由op自己解决(尽管我已经更正了我的答案)可能更好的是范围(开始,开始+结束)
为什么我的答案不有用?范围(1,random.randint(4,9))
>>> range(1,3)
[1, 2]
>>> range(1,4)
[1, 2, 3]
>>> range(1,8)
[1, 2, 3, 4, 5, 6, 7]
>>> range(1,9)
[1, 2, 3, 4, 5, 6, 7, 8]
from itertools import count, islice
from random import randint
mylist = list(islice(count(1), randint(3, 8)))