问题描述: 我创建了一个不重复的报价生成器,但它不起作用。每次运行代码时,报价都会重复。
示例代码:
import random
quotes = [
"人生在世,要做自己喜欢做的事。",
"没有梦想,就没有奋斗的方向。",
"成功源于对目标的执着追求。",
"每一天都是一个好日子。",
"相信自己,你可以做到!"
]
def generate_quote():
index = random.randint(0, len(quotes)-1)
return quotes[index]
for _ in range(5):
quote = generate_quote()
print(quote)
解决方法:
问题出在每次生成报价时,使用了random.randint(0, len(quotes)-1)
来随机选择报价。这个方法可能会生成重复的索引值,导致重复的报价。
为了解决这个问题,我们可以使用random.sample()
方法来随机选择不重复的报价。这个方法会返回一个指定长度的不重复随机样本。
更新后的代码如下:
import random
quotes = [
"人生在世,要做自己喜欢做的事。",
"没有梦想,就没有奋斗的方向。",
"成功源于对目标的执着追求。",
"每一天都是一个好日子。",
"相信自己,你可以做到!"
]
def generate_quote():
sample_quotes = random.sample(quotes, len(quotes))
return sample_quotes.pop()
for _ in range(5):
quote = generate_quote()
print(quote)
现在,每次运行代码时,生成的报价都不会重复了。
上一篇:不重复的ARRAY_AGG
下一篇:不重复的背包问题:最大金币数量