分别调用列表中的多个项目?

问题描述 投票:0回答:1

所以,在最终弄清楚如何从列表中一次调用多个对象之后,我遇到了另一个问题;我似乎无法调用多个项目,除非它们按顺序排列。我想读取用户输入并将其解释为命令,无论输入的单词顺序如何。

command = input("Enter command: ")
keywords = command.split()

if set(keywords).issubset(['hello','world']):print("Hello world!")

这会打印“Hello world!”当输入是“hello world”或“world hello”时,但我希望它在以任何顺序输入时都能工作;例如“向世界,你好”或“向世界你好”。

python-3.x list set user-input
1个回答
0
投票

这里存在一个问题,允许对“世界”和“你好”进行任何排列:

  1. 默认情况下,Python 中的字符串比较区分大小写。使用

    .lower
    方法来防止这种情况。

  2. 当匹配非字母数字字符串(如“,”或“.”)时可以留在

    .split
    。因此,您必须清理输入才能输入“to the world, hello”,因为拆分会输出
    world,

  3. 只需在 if 语句中使用

    {}
    询问集合即可。

    转换为小写以允许不区分大小写的匹配

    command = input("输入命令:").lower()

    删除除空格之外的非字母数字字符,以允许使用诸如“to the world, hello”之类的字符串

    cleaned_command = ''.join(c if c.isalnum() or c.isspace() else ' ' for c in command)

    将清理后的命令拆分成单词

    关键字 = clean_command.split()

    检查有效关键字集是否是输入关键字的子集

    if {'hello', 'world'}.issubset(关键字): 打印(“你好世界!”)

© www.soinside.com 2019 - 2024. All rights reserved.