【发布时间】:2014-04-09 12:24:37
【问题描述】:
我有一个 python 字符串列表,比如说:
elems = ["A", "B", "C", "D"]
我想创建一个新列表,其元素是elems 的每个元素以随机顺序重复固定次数(假设两次),但同时确保两个连续元素永远不会具有相同的值。
例如,["D", "B", "A", "B", "D", "C", "A", "C"] 是一个很好的结果。 ["D", "B", "A", "B", "D", "C", "C", "A"] 不是(C 在第 6 和第 7 位重复)。
最简单的想法可能就是:
ans = 2*elems
random.shuffle(ans)
然后是一些代码来处理重复,但我能想到的所有解决方案都涉及潜在的无限循环。有没有简单可靠的方法来做到这一点?
谢谢。
【问题讨论】:
-
你可以
shuffle然后乘以random.shuffle(elems); ans = 2*elems。还是不够随机? -
输入列表中的元素是否不同?
标签: python algorithm list sorting random