从 Python 列表中随机选择一个单词

在 Python 中从列表中随机选择一个词

Pick a random word from a List in Python

使用该random.choice()方法从列表中选择一个随机单词,例如
random_word = random.choice(a_list)random.choice()方法从提供的列表中返回一个随机元素。

主程序
import random a_list = ['bobby', 'hadz', '.', 'com'] random_word = random.choice(a_list) print(random_word) # 👉️ bobby

random.choice方法接受
一个序列并从非空序列返回一个随机元素。

主程序
import random a_list = ['bobby', 'hadz', '.', 'com'] print(random.choice(a_list)) # 👉️ bobby print(random.choice(a_list)) # 👉️ bobby print(random.choice(a_list)) # 👉️ .

如果序列为空,random.choice()方法将引发一个异常。IndexError

try/except如果需要处理错误,请使用语句。

主程序
import random a_list = [] try: random_word = random.choice(a_list) print(random_word) except IndexError: # 👇️ this runs print('The list is empty')

random.choice()使用空列表调用该方法会导致 anIndexError
except块处理。

如果您需要从列表中获取 N 个随机单词,请使用列表理解。

主程序
import random a_list = ['bobby', 'hadz', '.', 'com'] random_words = [random.choice(a_list) for _ in range(2)] print(random_words) # 👉️ ['.', 'com']

我们使用列表理解来迭代一个range对象。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

范围通常用于循环特定次数。

在每次迭代中,我们调用该random.choice()方法来选择一个随机单词并返回结果。

在 Python 中从字符串中随机选择一个单词

从字符串中随机选择一个词:

  1. 使用str.split()方法将字符串拆分为单词列表。
  2. 使用该random.choice()方法从列表中随机选择一个单词。
主程序
import random string = 'bobby hadz . com' a_list = string.split() print(a_list) # 👉️ ['bobby', 'hadz', '.', 'com'] random_word = random.choice(a_list) print(random_word) # 👉️ bobby

str.split ()
方法使用定界符将字符串拆分为子字符串列表。

当没有分隔符传递给该str.split()方法时,它会将输入字符串拆分为一个或多个空白字符。
主程序
string = 'bobby hadz . com' a_list = string.split() print(a_list) # 👉️ ['bobby', 'hadz', '.', 'com']

一旦我们有了一个单词列表,我们所要做的就是random.choice()
用这个列表调用方法。

生成单词列表并从列表中随机选择一个单词

要生成单词列表并从列表中随机选择一个单词:

  1. 向存储单词列表的数据库发出 HTTP 请求。
  2. 使用该random.choice()方法从列表中随机选择一个单词。
主程序
import random import requests def get_list_of_words(): response = requests.get( 'https://www.mit.edu/~ecprice/wordlist.10000', timeout=10 ) string_of_words = response.content.decode('utf-8') list_of_words = string_of_words.splitlines() print(list_of_words) return list_of_words words = get_list_of_words() random_word = random.choice(words) print(random_word) # 👉️ oven

如果您没有安装该requests模块,请运行以下命令来安装它。

# 👇️ in a virtual environment or using Python 2 pip install requests # 👇️ for python 3 (could also be pip3.10 depending on your version) pip3 install requests

你可以在浏览器中打开麻省理工学院单词表查看内容。

该列表包含 10,000 个单词,每个单词占一行。

我们使用该bytes.decode()方法将字节对象转换为字符串。

bytes.decode
方法返回从给定字节解码的字符串
默认编码是
utf-8.

单词在不同的行上,因此我们使用该str.splitlines() 方法将字符串拆分为单词列表。
主程序
multiline_string = """bobby hadz com""" # 👇️ ['bobby', 'hadz', 'com'] print(multiline_string.splitlines())

str.splitlines
方法在换行符

拆分字符串并返回包含字符串中的行的列表。

最后一步是使用该random.choice()方法从列表中随机获取一个单词。

发表评论