Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查字符串是否包含列表中的字符串?_Python_Python 3.x - Fatal编程技术网

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

Python 如何检查字符串是否包含列表中的字符串?,python,python-3.x,Python,Python 3.x,我想检查用户输入的字符串是否包含列表中的一个字符串 我知道如何检查字符串是否包含一个字符串,但我想知道如何检查字符串是否包含这个字符串、那个字符串或另一个字符串 例如,如果我正在检查用户的输入,看它是否包含元音。。当我们谈论元音时,可以有5种不同的选择(a、e、i、o或u)。我如何检查用户输入的字符串是否有以下内容之一?使用: 使用: 您可以使用这种语法 if myItem in list: # do something 还可以查看以下功能: 您可以使用此语法 if myItem in lis

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

我知道如何检查字符串是否包含一个字符串,但我想知道如何检查字符串是否包含这个字符串、那个字符串或另一个字符串

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

使用:

使用:


您可以使用这种语法

if myItem in list:
# do something
还可以查看以下功能:


您可以使用此语法

if myItem in list:
# do something
还可以查看以下功能:


这是您想要的基本逻辑:

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()
方法;如果其中的任何项返回真值,则将返回真值

以下是它的工作原理:

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!')

这是您想要的基本逻辑:

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()
方法;如果其中的任何项返回真值,则将返回真值

以下是它的工作原理:

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!')

按顺序检查字符串有效,但如果对您的案例来说效率太低,则可以使用。

按顺序检查字符串有效,但如果对您的案例来说效率太低,则可以使用。

是否可以指定-1原因?是否可以指定-1原因这也有效,但.crossion()也有效。为什么我要选择any()而不是.intersection()?这也行,但是.intersection()也行。为什么我要选择any()而不是.intersection()?这是可行的,但有另一个答案显示any(),它也有效。你能告诉我为什么我应该使用.intersection()而不是any()?@jasonecastro对于你的例子
any
更好,当集合元音的大小很大时,集合可能很有用,在这种情况下,你可以将
any
set
结合在一起,以得到一个有效的解决方案,因为集合提供O(1)查找。顺便说一句,
set.intersection
返回一个包含
元音
inp
之间唯一公共元素的新集合,当返回集合的长度大于0时,该集合上的bool()返回True。而
any
只需返回True/False。这是可行的,但还有另一个答案显示any(),它也有效。你能告诉我为什么我应该使用.intersection()而不是any()?@jasonecastro对于你的例子
any
更好,当集合元音的大小很大时,集合可能很有用,在这种情况下,你可以将
any
set
结合在一起,以得到一个有效的解决方案,因为集合提供O(1)查找。顺便说一句,
set.intersection
返回一个包含
元音
inp
之间唯一公共元素的新集合,当返回集合的长度大于0时,该集合上的bool()返回True。和
any
只返回True/False。为什么选择any()而不是.intersection()?@jasonecastro,这只适用于单个字符串。回溯(最近一次调用):文件“”,第1行,在中?NameError:name'any'未定义@jester112358,
any
可从Python 2.5获得。为什么选择any()而不是.intersection()?@jasonecastro,这只适用于单个字符串。回溯(最近一次调用):文件“”,第1行,在?NameError:name'any'未在@jester112358定义,
any
可从Python 2.5获得。