gpt4 book ai didi

python - 检查字符串是否仅包含字符/符号列表中的字符?

转载 作者:行者123 更新时间:2023-12-05 09:13:00 25 4
gpt4 key购买 nike

如何在 Python 3 中检查字符串是否仅包含给定列表中的字符/符号?

给定:

  • 列表 allowedSymbols = ['b', 'c', 'z', ':']
  • 一个输入字符串enteredpass = str(input("Enter"))

如何检查 enteredpass 是否仅包含 allowedSymbols 列表中的字符?

最佳答案

更 Pythonic 的方式是使用 all() ,它更快、更短、更清晰,而且你不需要循环:

allowedSymbols = ['b', 'c', 'z', ':']

enteredpass1 = 'b:c::z:bc:'
enteredpass2 = 'bc:y:z'

# We can use a list-comprehension... then apply all() to it...
>>> [c in allowedSymbols for c in enteredpass1]
[True, True, True, True, True, True, True, True, True, True]

>>> all(c in allowedSymbols for c in enteredpass1)
True
>>> all(c in allowedSymbols for c in enteredpass2)
False

另请注意,allowedSymbols 是一个字符列表而不是一个简单的字符串没有任何好处:allowedSymbols = 'bcz:'(后者在内存中更紧凑并且可能测试速度也更快)

但是您可以使用 ''.join(allowedSymbols)

轻松地将列表转换为字符串
>>> allowedSymbols_string = 'bcz:'

>>> all(c in allowedSymbols_string for c in enteredpass1)
True
>>> all(c in allowedSymbols_string for c in enteredpass2)
False

see the doc for the helpful builtins any() and all() ,连同列表理解或生成器表达式,它们非常强大。

关于python - 检查字符串是否仅包含字符/符号列表中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com