从列表中打印随机字符串(多次),无重复

时间:2019-12-25 05:12:46

标签: python

我想在整个程序中多次打印同一列表中的随机字符串,但不重复任何先前打印的随机字符串。

如果我满足以下条件:

core = 'a', 'b', 'c', 'd'

print (random.sample(core[0:], k=2))
print (random.sample(core[0:], k=2))

我希望结果看起来像这样:

b, d
c, a

2 个答案:

答案 0 :(得分:6)

random.sample本身无需替换即可工作,因此没有重复的情况。获取4的样本并切片:

randoms = random.sample(core, 4)

print(randoms[:2])
print(randoms[2:])

答案 1 :(得分:1)

您可以使用shuffle()中的random。然后使用切片提取必要的元素。

import random

initial = 'a', 'b', 'c', 'd'
l = list(initial)
random.shuffle(l)

print (l[:2])
print (l[2:])

输出:

['a', 'c']
['b', 'd']