python - 错误 : TypeError: 'str' object cannot be interpreted as an integer while trying to pick a random winner (Python)

标签 python string random

我是编程的新手,我一直在尝试弄乱 Python,但是当我尝试制作一个随机名称选择器从列表中选择一个随机名称时,我总是会遇到同样的错误.我还尝试删除代码选择的获胜者,并在“获胜者”列表中添加一个新名称,但它似乎不起作用。这是我现在拥有的短代码。

winners = ["Wane", "Trevor", "Franklin", "Martoz"]
winner = random.choice(winners)
winners.pop(winner)
winners.append("Michael")
print(winners)

最佳答案

如果你想从列表中删除一个项目,使用 .remove() 函数,如下所示:

>>> winners = ["a", "b", "c"]
>>> winners.remove("b")
>>> winners
['a', 'c']

.pop() 用于根据给定的索引从列表中提取元素,并返回从列表中删除的元素。出现您的错误是因为您试图根据列表中的元素(名称)而不是它的索引(它在列表中的位置)弹出。

如果你想坚持使用 pop,也许不是选择一个随机名称,而是在列表中选择一个随机索引:

winners = ["Wane", "Trevor", "Franklin", "Martoz"]
winner = winners.pop(random.randrange(len(winners)))

关于python - 错误 : TypeError: 'str' object cannot be interpreted as an integer while trying to pick a random winner (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53951946/

相关文章:

javascript - 在 JavaScript 中生成随机数

python - Flask-SQLAlchemy ORM/GeoAlchemy2 结果为字典,最终为 JSON

python - try block 在无限 while 循环中导致线程退出

c++ - C++ 函数中返回字符串中最常见字符的错误。多字节字符?

python - 当找到或未找到正则表达式模式时记录消息(详细 re.sub)

scala - 关于如何在 Scala 中使用随机值向现有 DataFrame 添加新列

python - 如何使用 Pandas 将所有整天的每日数据重新采样为每小时数据?

python - 如何配置 YAPF 以与 Black 相同的方式格式化

string - 在 KMP 算法中发生不匹配时转移文本的原因是什么?

java - 随机掷骰和一些数学结果不一致