【问题标题】:Validate list contents验证列表内容
【发布时间】:2018-02-17 00:33:04
【问题描述】:

假设我通过将输入转换为列表来创建一个列表:

Lst = list(input())

如何进行循环,使用户的输入只包含 R B 或 G

例如,如果输入为 Rbrg,则循环应继续,直到引入仅包含 RBG 的输入(无空格)

使用正则表达式,模式是: pat = re.compile("[RBG]")

for each in Lst:
    while True:
        if not re.match(pat, each):
            Lst = list(input())
        else:break

我走对了吗?

【问题讨论】:

  • Lst = list(input())?

标签: python list validation input


【解决方案1】:

这是另一种方式。我已经使检查不区分大小写。

while True:

    user_input = input('enter strings: ')

    if set(map(str.lower, user_input)) <= set('rbg'):

        print(user_input)

        break

【讨论】:

    【解决方案2】:

    您可以使用带有函数all 的生成器推导来代替正则表达式:

    while True:
       user_input = input('enter string: ')
       if all(i in 'RGB' for i in user_input):
          do_something(user_input)
          break
    

    【讨论】:

    • 这看起来很整洁。谢谢!
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2023-03-22
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多