python – “if any”检测到的列表的显示元素
发布时间:2020-12-20 12:02:32 所属栏目:Python 来源:网络整理
导读:我正在使用一个简单的系统来检查一些禁止的单词当前是否在字符串中但是我想改进它以显示有问题的单词所以我添加了该行 print ("BANNED WORD DETECTED : ",word) 但是我得到了错误 "NameError: name 'word' is not defined" 如果认为问题是我的系统只是检查列
我正在使用一个简单的系统来检查一些禁止的单词当前是否在字符串中但是我想改进它以显示有问题的单词所以我添加了该行
print ("BANNED WORD DETECTED : ",word) 但是我得到了错误 "NameError: name 'word' is not defined" 如果认为问题是我的系统只是检查列表中是否有任何单词没有“存储”某处,也许我误解了python列表系统,我应该修改什么建议? # -*- coding: utf-8 -*- bannedWords = ['word1','word2','check'] mystring = "the string i'd like to check" if any(word in mystring for word in bannedWords): print ("BANNED WORD DETECTED : ",word) else : print (mystring) 解决方法
any()不适用于此,使用带有next()的生成器表达式或列表推导:
banned_word = next((word for word in mystring.split() if word in bannedWords),None) if banned_word is not None: print("BANNED WORD DETECTED : ",word) 或者多个单词: banned_words = [word for word in mystring.split() if word in bannedWords] if banned_words: print("BANNED WORD DETECTED : ",','.join(banned_words)) 对于改进的O(1)成员资格测试,将禁止词设为一组而不是列表 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |