【发布时间】:2020-10-10 20:53:49
【问题描述】:
我正在使用 Python 制作 Discord 机器人,
我希望机器人对随机消息做出反应,使用random.choice 可以正常工作
不过,我想补充一点。我发现random.choices(文档here)
您可以将权重添加到您的列表中,这样一些权重会比其他一些更频繁地被挑选。
现在我有:
@bot.event
async def on_member_join(channel):
time.sleep(2)
channel = bot.get_channel(723954693826674701)
brankos_greetings = [
"testMessageCommon1",
"testMessageCommon2",
"testMessageCommon3",
"testMessageCommon4",
"testMessageCommon5",
"testMessageCommon6",
"testMessageCommon7",
"testMessageCommon8",
"testMessageCommon9",
"testMessageCommon10",
"testMessageSemiRare1",
"testMessageSemiRare2",
"testMessageSemiRare3",
"testMessageSemiRare4",
"testMessageSemiRare5",
"testMessageSemiRare6",
"testMessageSemiRare7",
"testMessageRare1",
"testMessageRare2"
]
weights = [
0.077,
0.077,
0.077,
0.077,
0.077,
0.077,
0.077,
0.077,
0.077,
0.077,
0.03,
0.03,
0.03,
0.03,
0.03,
0.03,
0.03,
0.01,
0.01,
]
response = random.choices(brankos_greetings, weights, k = 1)
await channel.send(response)
但是,这会在聊天中提供以下输出:['testMessageCommon1'] ['testMessageRare1']。等等
我尝试过:
response = str(random.choices(brankos_greetings, weights, k = 1))
和
await channel.send(str(response))
和
response = random.choices(brankos_greetings, weights, k = 1).strip('[]')
和
await channel.send(response.strip(['']))
但没有任何效果。
所以我的问题是:如何将这里的列表转换为字符串?
【问题讨论】:
-
我忘了补充
-
我也试过了
-
一个简单的问题:
['who dis']和['hi']来自哪里?这些是您在brankos_greetings中拥有的吗? -
抱歉,机器人实际上是这么说的,但我在实际列表中将其更改为更好理解的内容。
-
是关于单词周围的 [] 和 ''
标签: python string list discord