首页 > 解决方案 > Python - 元组的不区分大小写的用户输入

问题描述

例如,我正在编写一个 Discord 机器人,我希望它读取用户可能键入的某些关键字,然后让它输出响应。我有一个关键字列表供机器人阅读,但我希望它不区分大小写。

angy_words = ["furious", "rage", "angry", "mad", "angy", "hate", "hatred", "so upset", "so mad", "lame", "loven't", "lord have mercy"]

if any(word in msg for word in angy_words): 
    await message.channel.send(random.choice(angy_response)) 

我试过 .lower()、.upper()、.casefold(),但我想我不确定如何/在哪里实现它。我还没有找到关于使用元组执行此操作的任何其他答案/其他在线资源。

非常感谢!

标签: pythondiscord.pycase-insensitive

解决方案


正如你所说,lower()将在这里工作:

>>> x = "AaBbcC"
>>> x.lower()
'aabbcc'

所以在你的情况下(因为list已经是小写了):

any(word in msg.lower() for word in angy_words)

为避免多次将消息转换为小写:

lower_msg = msg.lower()
any(word in lower_msg  for word in angy_words)

推荐阅读