在 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 中从字符串中随机选择一个单词
从字符串中随机选择一个词:
- 使用
str.split()
方法将字符串拆分为单词列表。 - 使用该
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()
用这个列表调用方法。
生成单词列表并从列表中随机选择一个单词
要生成单词列表并从列表中随机选择一个单词:
- 向存储单词列表的数据库发出 HTTP 请求。
- 使用该
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()
方法从列表中随机获取一个单词。