python - 如何使 message.channel.send 命令需要来自同一个库的两个单词?(Python 和 Discord.py)
问题描述
我对编码很陌生,如果我的措辞有误,我很抱歉,但我有这个词库
california_triggers = [
"California", "california", "Fire", "fire"
]
并且我希望仅当消息在所述库中有两个单词时才触发以下命令
if any(word in msg for word in california_triggers):
await message.channel.send("California is currently on fire as of "+now_string+".")
我如何让“加利福尼亚现在着火了”需要触发来自 california_triggers 的两个单词?我很抱歉,因为我对这一切都不熟悉。我是否需要仅偏离 discord 库的导入?
解决方案
首先,它不是一个词库。库在 python 中具有完全不同的含义。你有一个单词列表。现在检查 msg 是否有列表中的两个单词,可以通过多种方式完成。
if len(set(msg.content.split()) & set(california_triggers)) == 2:
#msg and california have two common words
解释:
msg.content.split()
按空格分割消息。即成词。
两个集合之间的&
运算返回两个集合的交集。即常用词。
我们检查常用词的长度是否为 2,然后触发 if 块。
参考:
注意:
你的问题是说你还没有学会足够的 python 来开始编写你自己的 discord 机器人。我建议从头开始学习 Python和专门针对 discord.py 的OOP,然后才能制作真正的机器人
推荐阅读
- pine-script - 如何在 plotchar 函数调用中使用可变变量?
- c# - WaitHandleCannotBeOpenedException 和 MMF FileNoteFoundException 杂音
- matlab - 如何检验相关性?
- javascript - 为什么 take 会触发 Observable?
- node.js - Google oAuth2 - consent screen and redundant popup
- android - Printer Android - 打印机在行首打印点
- python - h5py中的双端队列
- jquery - 触发onchange动作jquery
- unity3d - 两个物体之间的摩擦
- python-3.x - 由于 TypeError 无法绘制散点图