Python 如何检查字符串是否包含列表中的字符串?
我想检查用户输入的字符串是否包含列表中的一个字符串 我知道如何检查字符串是否包含一个字符串,但我想知道如何检查字符串是否包含这个字符串、那个字符串或另一个字符串 例如,如果我正在检查用户的输入,看它是否包含元音。。当我们谈论元音时,可以有5种不同的选择(a、e、i、o或u)。我如何检查用户输入的字符串是否有以下内容之一?使用: 使用: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
您可以使用这种语法
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获得。