如何解决在 Python 中生成随机序列
我想生成一个序列,其中包含一个整数(比如 x)'m' 次和另一个整数(比如 y)'n' 次。我如何在 Python 中执行此操作?
解决方法
要获得随机值,您可以将 m
和 n
数字列表传递给 random.sample
,其中 k
值等于总数。
import random
x = 'X'
m = 3
y = 'Y'
n = 5
for i in range(5):
print(random.sample([x]*m + [y]*n,k=m+n))
打印:
['X','X','Y','Y']
['Y','X']
['Y','Y']
['X','X']
['X','X']
如果您使用的是 Python 3.9,现在可以传递一个 counts
参数,使事情变得简单一些:
random.sample([x,y],counts=[m,n] k=m+n)
,
例如,您可以先定义一组值,然后根据 random.randrange()
选择索引:
items = [*(x,)*n,*(y,)*m]
seq = [items.pop(random.randrange(0,len(items))) for i in range(m+n)]
pop()
确保在每次选择时都使用该列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。