在Python中从列表中随机选择元素而不重复
Python 在random
模块中的内置模块用于处理随机数据。 random
模块提供了各种方法来从列表、元组、集合、字符串或字典中随机选择元素,而无需任何重复。以下是一些描述从列表中随机选择元素而不重复的方法:
方法一:使用 random.sample()
在random
模块中使用sample()
方法。 sample()
是 random 模块的内置方法,它将选择的序列和数量作为参数,并返回从序列中选择的特定长度的项目列表,即列表、元组、字符串或集合。它用于从项目列表中随机选择而不进行任何替换。
示例 1:
# importing the required module
import random
# list of items
List = [10, 20, 30, 40, 50, 40,
30, 20, 10]
# using the sample() method
UpdatedList = random.sample(List, 3)
# displaying random selections from
# the list without repetition
print(UpdatedList)
输出:
[50, 20, 10]
我们也可以对数字序列使用sample()
方法,但是,选择的数量应该大于序列的大小。
示例 2:
# importing the required module
import random
# using the sample() method on a
# sequence of numbers
UpdatedList = random.sample(range(1, 100), 5)
# displaying random selections without
# repetition
print(UpdatedList)
输出:
[51, 50, 97, 22, 6]
方法 2:使用 random.choices()
使用random
库中的choices( choices()
方法, choices()
方法需要两个参数列表和k(选择数)从列表中返回多个随机元素并进行替换。但是,我们需要将列表转换为集合以避免元素重复。
示例 1:
# importing the required module
import random
# converting the list into a set
Set = set([10, 20, 30, 40, 50, 40,
30, 20, 10])
# using the choices() method on the
# given dataset
UpdatedList = random.choices(list(Set), k = 3)
# displaying random selections without
# repetition
print(UpdatedList)
输出:
[30, 20, 40]
如果choices()
方法应用于一个唯一数字的序列,那么只有当k
参数(即选择的数量)应该大于列表的大小时,它才会返回一个唯一随机选择的列表。
示例 2:
# importing the required module
import random
# converting the list into set
List = [i for i in range(1, 100)]
# using the choices() method on a
# sequence of numbers
UpdatedList = random.choices(List, k = 5)
# displaying random selections without
# repetition
print(UpdatedList)
输出:
[46, 32, 85, 12, 68]
方法 3:使用 random.choice()
在random
模块中使用choice()
方法, choice()
方法从列表、元组或字符串中返回单个随机项。
下面是在项目列表中使用choice()
方法的程序。
示例 1:
# importing the required module
import random
# list of items
List = [10, 20, 30, 40, 50, 40,
30, 20, 10]
# using the choice() method to return a
# single item from the dataset
print(random.choice(List))
输出:
20
下面是一个程序,其中选择方法用于数字序列。
示例 2:
# importing the required module
import random
# using the choice() method to return a
# single item from the dataset
print(random.choice(range(1, 100)))
输出:
56