python - 如何使 itertools.product() 随机
问题描述
我有下面的代码,它将打印“abc”的所有可能组合。有没有办法我只能打印部分组合,或者让它每次随机打印组合。
我的代码是:
from itertools import product
for item in product('abc', repeat=3):
codes = (''.join(item))
print(codes)
这段代码的结果给了我这个:
aaa
aab
aac
aba
abb
abc
.
.
.
bcc
caa
cca
ccb
ccc
我希望它的结果每次都是随机的,或者只打印这样的特定部分:
bcc
caa
cca
ccb
ccc
解决方案
我可能会使用类似的东西:
from itertools import product
from random import choice
all_samples = ["".join(x) for x in product("abc", repeat=3)][0:10] # as requested on the comments, limits the list to the first 10 items.
def rand_sample():
sample = choice(all_samples)
all_samples.remove(sample)
return sample
for _ in range(10):
print(rand_sample())
cbc
caa
acb
bbc
abc
cac
aaa
ccb
aac
acc
推荐阅读
- python-3.x - 在控制台中执行代码时 os.chdir() 不起作用
- python - Geopandas 设置几何:MultiPolygon“equal len 键和值”的 ValueError
- selenium - Selenium 无法使用 xpath 找到元素,但我可以手动找到它
- javascript - 使用 vue.js 过滤搜索现有表
- python - 如何将脚本执行委托给 exasol 中的不同节点?
- python - 如何使用 Python 3.x 使用(或更改)打印来写入文件
- java - 是否可以在 java 中的 system.out.println 中获取输入,如果没有,那么如何执行以下代码?
- bonita - Bonita BPM 在几列中返回 0.00
- javascript - 在地址中隐藏目标实际 url 的屏蔽 url
- pandas - 如何强制 from_records 将字符串转换为数字?