随机选择不重复

Random choice without repeats

每次随机选择 运行 时,我都需要生成一个唯一元素,每次 运行 时都没有任何重复(不允许使用列表) 例如:(x,y,z) (y,x,z) (z,y,x)


from random import choice
operator=random.choice("xyz")

这是您要找的吗:

import random

for i in range(5):
    print(random.sample("xyz", 3))

['y', 'z', 'x']
['z', 'y', 'x']
['z', 'x', 'y']
['x', 'y', 'z']
['z', 'x', 'y']

我认为这是一个等效的解决方案:

for i in range(5):
    x = list("xyz")
    random.shuffle(x)
    print(x)

根据您的示例,您正在尝试进行排列以查找唯一元素?

from itertools import permutations

for i in permutations("xyz"):
    print (i)

('x', 'y', 'z')
('x', 'z', 'y')
('y', 'x', 'z')
('y', 'z', 'x')
('z', 'x', 'y')
('z', 'y', 'x')