如何检查字符串是否包含列表中的字符串?

时间:2013-08-14 05:19:33

标签: python python-3.x

我想检查用户输入的字符串是否包含列表中的一个字符串。

我知道如何检查字符串是否包含一个字符串,但我想知道如何检查字符串是否包含此字符串,或该字符串或其他字符串。

例如,如果我正在检查用户的输入以查看它是否包含元音..当我们谈论元音(a,e,i,o或u)时,可以有5种不同的选择。如何查看用户输入的字符串是否有其中一个?

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)

不同之处在于,此方法不会返回自定义字符串,而是返回TrueFalse;我们可以在循环中以相同的方式使用它:

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

还要看一下这些功能:

http://docs.python.org/2/library/functions.html