如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]
Posted
技术标签:
【中文标题】如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]【英文标题】:How to check if a string is in a list, using a function on each item (python3) [duplicate]如何检查字符串是否在列表中,使用每个项目上的函数(python3)[重复] 【发布时间】:2020-08-05 01:01:45 【问题描述】:我正在制作一个类似于 AI 的程序,它会做出响应。我开始编写这个项目,但遇到了障碍。我想获取一个单词列表,然后在返回布尔值时检查给定字符串是否在列表中。我的代码看起来像这样......
listofhellos = ['hello', 'hi', 'hey!!!']
if listofhellos.lower() == 'hello':
# This checks if string 'hello' is in listofhellos
print('Hey, how are you?')
# if it is in the list then print out a response
谢谢!
【问题讨论】:
if 'hello' in listofhellos
嗨!尽管链接的问题是相关的,但您的请求是关于按顺序检查每个项目(使用.lower()
,但可能是任何其他函数),所以这是一个略有不同的请求。我编辑了你的标题以反映这一点。
【参考方案1】:
解决方案如下:
listofhellos = ['hello', 'hi', 'hey!!!']
check = "Hello"
if check.lower() in listofhellos:
print('Exists')
else:
print("Not exists")
【讨论】:
看起来没问题,但如果listofhellos
来自用户,并且在每个单词的开头放置大写字符怎么办?【参考方案2】:
你可以试试——
if 'hello' in map(str.lower, ['hello', 'hi', 'Hey!!!']):
或
return 'hello' in map(str.lower, ['hello', 'hi', 'Hey!!!']):```
【讨论】:
【参考方案3】:您可能希望将any()
内置函数与the Python 'list comprehension' 结合使用(嗯,实际上是generator expression):
if any(item.lower() == 'hello' for item in listofhellos):
print('hey, how are you?')
这将按顺序检查列表中的每个项目,对其进行测试,并在验证您的测试的第一个项目处返回 True
。
【讨论】:
以上是关于如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]的主要内容,如果未能解决你的问题,请参考以下文章