Python 不一致Py如何检查它是否';列表中的字符串格式相同,但变量不同?

Python 不一致Py如何检查它是否';列表中的字符串格式相同,但变量不同?,python,discord.py,Python,Discord.py,所以我对python还很陌生,如果这个问题不好,我很抱歉,但我真的不知道如何看待或描述这个问题 我一直在尝试让机器人响应某个具有格式的短语,但我希望它也响应我在格式中使用时放入列表中的其他单词 以下是我尝试过的: keywords = { "youre": ['ure', 'your'], "nice": ["good", "cool"] } if self.client.user.mentio

所以我对python还很陌生,如果这个问题不好,我很抱歉,但我真的不知道如何看待或描述这个问题

我一直在尝试让机器人响应某个具有格式的短语,但我希望它也响应我在格式中使用时放入列表中的其他单词

以下是我尝试过的:

keywords = {
     "youre": ['ure', 'your'],
     "nice": ["good", "cool"]
}

if self.client.user.mentioned_in(message):
  mention = self.client.user.mention[:2] + '!' + self.client.user.mention[2:]
  replied = False

  for x in range(len(keywords["youre"]) + len(keywords["nice"])):
    if replied: return

    y = max(min(x, len(keywords["youre"]) - 1), 0)
    z = max(min(x, len(keywords["nice"]) - 1), 0)

    youre = keywords["youre"][y]
    nice = keywords["nice"][z]
    
    if (compare(msg, '{} {}'.format(youre, nice))):
      await message.reply(f'{random.choice(replies).format(name=getName(message))}')
      replied = True

      break

它工作得很好,但是如果我增加列表的大小,只有某些组合可以工作。我该怎么办?

如果您只想列出别名,以下示例可以:

#如果需要将其保存在不同的列表中:
关键词={
“youre”:['ure'、'your'、'yar'],
“好”:[“好”、“酷”、“愉快”]
}
对于范围内的x(len(关键字[“youre”]):
打印(f'{(关键字[“youre”])[x]}{(关键字[“nice”])[x]})
#只是为了分离输出:
打印(“--------------”)
#如果您不关心列表的数量:
别名=[“你很好”、“你很酷”、“很愉快”]
对于别名中的x:
打印(x)
#只是为了分离输出:
打印(“--------------”)
#如果您需要所有可能的组合:
关键词={
“youre”:[‘ure’、‘your’、‘yar’、‘yer’、‘u are’],#列表有不同的长度,其中一项有空格,但仍然有效
“好”:[“好”、“酷”、“愉快”]
}
对于关键字[“youre”]中的x:
对于关键字[“nice”]中的y:
打印(f“{x}{y}”)
输出:

ure good
your cool
yar pleasant
---------------
ure good
your cool
yar pleasant
---------------
ure good
ure cool
ure pleasant
your good
your cool
your pleasant
yar good
yar cool
yar pleasant
yer good
yer cool
yer pleasant
u are good
u are cool
u are pleasant

哦,我一定没有正确地描述它,我的目标是为“你很好”短语制作一个“别名”,例如:当我输入“你很好”时,机器人会检测到它并执行与我输入“你很好”相同的代码,如果这有点混乱,我很抱歉。我曾想过使用for循环遍历列表,并逐一检查是否包含它们,但当我不得不使用另一个循环时,我遇到了一个问题list@Ced,如果您只想列出别名,则可以只列出1个别名。对吗?我想你需要两个来组合它们,让所有的组合都成为别名。我已经更新了答案,以符合您在评论中告诉我的内容。哦,谢谢!快速提问tho,如果我还想要其他可能的组合,我该怎么办?比如说:“你的好”?此外,如果它们的长度不相同,夹紧索引是否可以解决此问题?@Ced Done!如您所见,如果列表的长度不同,那么获取所有组合的简单系统仍然有效,因为它只是遍历所有内容。