首页 / PYTHON / 搜索字符串中的Python逻辑
搜索字符串中的Python逻辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了搜索字符串中的Python逻辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1598字,纯文字阅读大概需要3分钟。
内容图文
![搜索字符串中的Python逻辑](/upload/InfoBanner/zyjiaocheng/763/f8db11d417f949eeba014aecd9e97c8b.jpg)
filtered=[]
text="any.pdf"
if "doc" and "pdf" and "xls" and "jpg" not in text:
filtered.append(text)
print(filtered)
这是我在Stack Overflow中的第一篇文章,所以如果在Question中有一些令人讨厌的东西,那么如果文本不包含任何这些单词,则代码会假设附加文本:doc,pdf,xls,jpg.
它的工作正常如果它像:
if "doc" in text:
elif "jpg" in text:
elif "pdf" in text:
elif "xls" in text:
else:
filtered.append(text)
解决方法:
如果你打开一个python解释器,你会发现“doc”和“pdf”,“xls”和“jpg”和’jpg’是一样的:
>>> "doc" and "pdf" and "xls" and "jpg"
'jpg'
因此,不是针对所有字符串进行测试,而是首次尝试仅针对“jpg”进行测试.
有很多方法可以做你想做的事.以下不是最明显的,但它很有用:
if not any(test_string in text for test_string in ["doc", "pdf", "xls", "jpg"]):
filtered.append(text)
另一种方法是将for循环与else语句结合使用:
for test_string in ["doc", "pdf", "xls", "jpg"]:
if test_string in text:
break
else:
filtered.append(text)
最后,您可以使用纯列表推导:
tofilter = ["one.pdf", "two.txt", "three.jpg", "four.png"]
test_strings = ["doc", "pdf", "xls", "jpg"]
filtered = [s for s in tofilter if not any(t in s for t in test_strings)]
编辑:
如果你想过滤单词和扩展名,我建议如下:
text_list = generate_text_list() # or whatever you do to get a text sequence
extensions = ['.doc', '.pdf', '.xls', '.jpg']
words = ['some', 'words', 'to', 'filter']
text_list = [text for text in text_list if not text.endswith(tuple(extensions))]
text_list = [text for text in text_list if not any(word in text for word in words)]
这仍然可能导致一些不匹配;上面还过滤了“做某事”,“他是一个文字匠”等等.如果这是一个问题,那么你可能需要一个更复杂的解决方案.
内容总结
以上是互联网集市为您收集整理的搜索字符串中的Python逻辑全部内容,希望文章能够帮你解决搜索字符串中的Python逻辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。