我想检查用户输入的字符串是否包含列表中的一个字符串。
我知道如何检查字符串是否包含一个字符串,但我想知道如何检查字符串是否包含此字符串,或该字符串或其他字符串。
例如,如果我正在检查用户的输入以查看它是否包含元音..当我们谈论元音(a,e,i,o或u)时,可以有5种不同的选择。如何查看用户输入的字符串是否有其中一个?
答案 0 :(得分:3)
使用any:
>>> vowels = 'a', 'e', 'i', 'o', 'u'
>>> s = 'cat'
>>> any(ch in vowels for ch in s)
True
>>> s = 'pyth-n'
>>> any(ch in vowels for ch in s)
False
答案 1 :(得分:2)
>>> vowels = set(['a', 'e', 'i', 'o', 'u'])
>>> inp = "foobar"
>>> bool(vowels.intersection(inp))
True
>>> bool(vowels.intersection('qwty'))
False
答案 2 :(得分:1)
这是你想要的基本逻辑:
def string_checker(user_input_string, vowels):
for i in vowels:
if i in user_input_string:
return 'Found it'
return 'Sorry grashooper :('
print string_checker('Hello',('a','e','i','o','u'))
执行此操作的捷径是使用内置的any()
方法;如果中的任何项目返回真值,则返回true。
以下是它的工作方式:
any(i in user_input_string for i in vowels)
不同之处在于,此方法不会返回自定义字符串,而是返回True
或False
;我们可以在循环中以相同的方式使用它:
if any(i in user_input_string for i in vowels):
print('Found it!')
else:
print('Oh noes! No vowels for you!')
答案 3 :(得分:0)
顺序检查字符串是有效的,但如果它对你的情况来说效率太低,你可以使用Aho-Corasick algorithm。
答案 4 :(得分:-1)
您可以使用此语法
if myItem in list:
# do something
还要看一下这些功能: