如何检查字符串是不是在列表中,使用每个项目上的函数(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)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是是字符串列表中项目的子字符串?

布尔列表检查列表中的每个项目是不是为假

Python如何检查列表中的项目是不是为浮点数,如果是,将其更改为字符串? [复制]

如何测试“int”类型列表中的每个项目是不是?

char列表上的SML模式匹配

如何改进评估列表以确定它是不是包含特定连续项目的方法?