随机将列表项放入字符串的一部分

时间:2017-01-16 19:01:27

标签: python list random

我有三个列表MainSupplementalAuxiliary,所有列表都包含多个字符串。

我试图从这些随机元素的组合中生成一个新字符串。 Main将具有已定义的索引,但其他索引应随机选择。这些出来的顺序也应该是随机的。

这将完成工作:

main = main[5]
supp = random.choice(supplemental)
aux = random.choice(auxiliary)

all = [main, supp, aux]

print(random.choice(all) + random.choice(all) + random.choice(all))

然而,这并不是特别优雅,并且很有可能发生碰撞。

有没有更好的方式来考虑这个问题,而且还有一个不会导致选择列表的方法被选中?

1 个答案:

答案 0 :(得分:1)

好像你想要random.shuffle你的物品:

>>> import random
>>> all_ = ['a', 'b', 'c']   # I use explicit strings instead of your [main, supp, aux]
>>> random.shuffle(all_)
>>> print(''.join(all_))
cba
>>> print(''.join(all_))
bac

shuffle如果您的列表包含重复的项目,则不会发生冲突。

如果您不想要额外的随机播放步骤,也可以使用

random.sample。它既不会更改原始列表,也可以在输入包含3个以上的项目时使用,并且您只想要3:

>>> print(''.join(random.sample(all_, 3)))
bca