Python random.choice() 方法



Python 的 random.choice() 方法用于从序列中随机选择一个项目。此序列可以是列表、元组、字符串或其他有序元素集合。集合等其他序列不被接受为该方法的参数,并且会引发 TypeError。这是因为集合被认为是无序序列,并且不记录其中的元素位置。因此,它们不可被索引。

在处理随机算法或程序时,choice() 方法非常方便。

注意 - 此函数无法直接访问,因此我们需要导入 random 模块,然后需要使用 random 静态对象调用此函数。

语法

以下是 Python random.choice() 方法的语法:

random.choice(seq)

参数

  • seq - 这是一个有序的元素集合(例如列表、元组、字符串或字典)。

返回值

此方法返回一个随机项。

示例 1

以下示例显示了 Python random.choice() 方法的用法。

import random #imports the random module

# Create a list, string and a tuple
lst = [1, 2, 3, 4, 5]
string = "Tutorialspoint"
tupl = (0, 9, 8, 7, 6)
dct = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

# Display the random choices from the given sequences
print("Random element in a given list", random.choice(lst))
print("Random element in a given string", random.choice(string))
print("Random element in a given tuple", random.choice(tupl))
print("Random element in a given dictionary", random.choice(dct))

运行上述程序时,会产生以下结果:

Random element in a given list 1
Random element in a given string u
Random element in a given tuple 8
Random element in a given dictionary b

如果再次执行相同的程序,结果将与第一个输出不同:

Random element in a given list 2
Random element in a given string t
Random element in a given tuple 0
Random element in a given dictionary d

示例 2

此方法可以使用 range() 函数选择元素范围内的元素。

在以下示例中,通过向 range() 函数传递两个整型参数来返回一个整型范围;并将此范围作为参数传递给 choice() 方法。作为返回值,我们试图从此范围内检索一个随机整数。

import random

# Pass the range() function as an argument to the choice() method
item = random.choice(range(0, 100))

# Display the random item retrieved
print("The random integer from the given range is:", item)

上述程序的输出如下:

The random integer from the given range is: 14

示例 3

但是,如果我们创建并将其他序列对象(如集合)传递给 choice() 方法,则会引发 TypeError。

import random #imports the random module

# Create a set object 's'
s = {1, 2, 3, 4, 5}

# Display the item chosen from the set
print("Random element in a given set", random.choice(s))

Traceback (most recent call last):
  File "main.py", line 5, in <module>
print("Random element in a given set", random.choice(s))
  File "/usr/lib64/python3.8/random.py", line 291, in choice
return seq[i]
TypeError: 'set' object is not subscriptable

示例 4

当我们将空序列作为参数传递给该方法时,会引发 IndexError。

import random

# Create an empty list seq
seq = []

# Choose a random item
item = random.choice(seq)

# Display the random item retrieved
print("The random integer from the given list is:", item)

Traceback (most recent call last):
  File "main.py", line 7, in <module>
item = random.choice(seq)
  File "/usr/lib64/python3.8/random.py", line 290, in choice
raise IndexError('Cannot choose from an empty sequence') from None
IndexError: Cannot choose from an empty sequence
python_modules.htm
广告