以下是一个简单的实现不重复随机化的方法的示例代码:
import random
def non_repeat_shuffle(lst):
shuffled = lst.copy()
random.shuffle(shuffled)
while any(x == y for x, y in zip(lst, shuffled)):
random.shuffle(shuffled)
return shuffled
# 示例用法
lst = [1, 2, 3, 4, 5]
shuffled_lst = non_repeat_shuffle(lst)
print(shuffled_lst)
这个方法首先复制原始列表,并使用random.shuffle()
函数对副本进行随机化。然后,它检查原始列表和随机化后的列表是否有任何元素相等。如果有重复元素,则重新进行随机化,直到没有重复元素为止。最后,返回随机化后的列表。
请注意,这个方法适用于较小的列表,因为它使用了一个循环来检查重复元素。对于非常大的列表,可能需要使用更高效的算法来避免性能问题。
下一篇:不重复随机选择