如何在数组生成时随机化行数?Python代码问题求助
解决随机行数数组生成问题
你的问题出在列表推导式的循环部分:range(lrows, hrows)会生成从lrows到hrows-1的所有整数(也就是2到14,共13个),所以每次都会固定生成13行数据。要实现随机行数,得先随机确定一个行数,再基于这个行数生成数组。
修改步骤:
- 用
random.randint(lrows, hrows)生成一个介于2到15之间的随机整数(包含2和15),作为本次要生成的行数。 - 把列表推导式里的循环改为
range(num_rows),这样就会循环对应次数,生成指定行数的数组。
修改后的完整代码:
import random def random_array(): low = 0 high = 200 cols = 1 lrows = 2 hrows = 15 # 随机生成行数,范围是lrows到hrows(包含两端) num_rows = random.randint(lrows, hrows) x = [random.choices(range(low, high), k=cols) for _ in range(num_rows)] print(', '.join(map(repr, x))) random_array()
现在每次运行代码,生成的数组行数都会在2到15之间随机变化,比如第一次7行、第二次4行,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Dead mem2020
相关产品推荐
相关产品推荐

