python - 随机选择在这种情况下不起作用?

标签 python list random

我正在尝试做到这一点,以便从玩家列表中随机选择...这很简单,我知道,但我无法让它工作,我得到一些随机字母,比如“我"或 "e"作为结果 :O

这是代码的一部分:

print "p.getName()", p.getName()
randomtarget = choice(p.getName())

p 是一个玩家列表,getName 是获取他们名字的函数,我成功获取了他们,所以这是我得到的:

22:29:21 [INFO] p.getName() Brixishuge
22:29:21 [INFO] Random target: i

显然,随机目标应该是“Brixishuge”,因为它是唯一可能的目标,但我得到的结果是“i”,为什么?我究竟做错了什么?

提前致谢!

最佳答案

random.choice 获取可供选择的事物列表。

因为你只是给它一个字符串(p.getName() 返回一个字符串)它正在处理字符串 作为字符列表,它从中选择一个字符(在您的情况下为“i”。)

你可能是这个意思:

randomtarget = choice([p.getName()])

您可以通过将某些内容放在方括号中或调用列表函数来创建列表。

l = [p.getName()]
l = list(p.getName())

进一步阅读后,p 似乎不是玩家列表,而是一个玩家。

如果你想要一个随机玩家的名字,你应该试试这个:

player = choice(list_of_players)
name = player.getName()

关于python - 随机选择在这种情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209811/

相关文章:

python - 测试 Numpy 数组是否包含给定行

python - PyQt5:如何检测QSlider是否被拖到末尾

python 元组列表排序

python - 如何创建特定大小的二项式数组

C++。加权 std::shuffle

Python Selenium - 自动填写表单 - 单击不是提交按钮的按钮并从列表中填写表单

python - 从列表项的不同组合创建元素列表

python - 如何从特定项目的输入中打印列表

javascript - 如何从函数中始终返回小数点后两位的数字

python - 欧拉计划 #10(Python)