我有三个值列表(数字和字母),我想编写一个程序,使每个列表中的一个随机组合。
我找到了一个代码,制作了所有可能的值组合,我认为这可能是一个很好的基础,但现在我不知道如何继续。谁能帮帮我?
这里是我的代码
import itertools
square = [a, s, d, f, g, h, j, k, l ]
circle = [w, e, r, t, z, u, i, o, p ]
line = [y, x, c, v, b, n, m ]
radiusshape = [1, 2, 3, 4, 5, 6, 7, 8, 9 ]
for L in range(0, len(stuff)+1):
for subset in itertools.combinations(stuff, L):
print(subset)
答案 0 :(得分:3)
您可以使用random.sample
从生成的cartesian product
k
个随机样本
# where k is number of samples to generate
samples = random.sample(itertools.product(square, circle, line, radiusshape), k)
例如
>>> a = [1, 2, 3, 4]
>>> b = ['a', 'b', 'c', 'd']
>>> c = ['foo', 'bar']
>>> random.sample(set(itertools.product(a,b,c)), 5)
[(1, 'c', 'foo'),
(4, 'c', 'bar'),
(1, 'd', 'bar'),
(2, 'a', 'foo'),
(2, 'd', 'foo')]
答案 1 :(得分:0)
您可以使用random.choice()
函数从列表中选择随机元素,因此只需在所有4个列表中使用它:
from random import choice
combination = (choice(square), choice(circle), choice(line), choice(radiusshape))