📅  最后修改于: 2023-12-03 14:51:19.065000             🧑  作者: Mango
有时候我们需要从一个列表中选择一个或多个元素,但又不希望选择到重复的元素。在Python中,我们可以使用random
和pop
方法来实现这个功能。
import random
my_list = ['a', 'b', 'c', 'd', 'e']
random.shuffle(my_list) # 随机打乱元素的位置
selected = my_list[:3] # 选择前3个元素
print(selected)
上述代码中,我们首先调用random模块并导入其中的shuffle方法。然后,我们将列表中的元素随机打乱位置。最后,选择前3个元素作为选择的结果,保存在变量selected
中。
使用random.shuffle
方法会修改原有列表,所以在需要使用原有列表的情况下需要先进行备份。
my_list = ['a', 'b', 'c', 'd', 'e']
selected = []
while len(selected) < 3: # 需要选择的元素个数
item = my_list.pop(random.randrange(len(my_list))) # 随机选择一个元素并将其从列表中删除
selected.append(item) # 将选择的元素添加到结果中
print(selected)
上述代码中,我们创建了一个备份的my_list
列表,并创建空列表selected
作为选择的结果。在while
循环中,我们使用random.randrange
方法来获得一个随机的下标,然后使用pop
方法将该元素从列表中删除并赋值给变量item
,最后将其添加到结果列表中。
使用pop
方法会修改原有列表,并缩短其长度。如果不需要保留原有列表,可以不进行备份。
我们通过random.shuffle
和list.pop
方法,实现了从列表中随机选择元素而不重复的功能。这对于需要从大量元素中选择一部分,但又不希望选择到重复元素的情况非常适用。