python - python的长文本中的特定单词搜索
问题描述
非常基本的问题,但是有没有办法让我在包含我想要的单词的列表中提取字符串?就像是:
wordNeeded=str(input("blue or red?"))
list1=["A blue car", "A blue bike", "A red bike"]
然后它将提取包含wordNeeded中确切单词的字符串?
解决方案
除其他方式外,您可以使用列表推导:
list1 = ["A blue car", "A blue bike", "A red bike"]
result = [item for item in list1 if wordNeeded in item]
print(result)
# ["A red bike"]
或者,您可以filter
结合一个lambda
函数来研究:
result = filter(lambda x: wordNeeded in x, list1)
print(list(result))
在这种情况下,后者更复杂,但产生相同的结果。
至于确切的单词,您要么需要在之前拆分每个项目(+最终将其小写):
wordNeeded = "blue"
list1 = ["A blue car", "A blue bike", "A red bike", "bluebells are cool."]
result = [item for item in list1
if any(wordNeeded.lower() == x.lower() for x in item.split())]
print(result)
# ['A blue car', 'A blue bike']
或者完全使用带有单词边界的正则表达式:
import re
rx = re.compile(r'\b{}\b'.format(wordNeeded), flags=re.I)
result = [item for item in list1 if rx.search(item)]
print(result)
推荐阅读
- laravel - 两个表之间的 Laravel 外键
- openpyxl - 使用 openpyxl 添加图表时,“builtin_function_or_method”类型的参数不可迭代
- angular - ng lint 命令成功,但 VS 代码显示错误
- java - 索引超出长度范围。找不到错误
- python - 对数据使用 nlp() 时,“float”/“int”类型的对象没有 len() 错误
- amazon-web-services - 有没有办法使用 Terraform for EC2 确认 user_data 成功运行?
- javascript - GraphQL/Apollo 客户端:如果查询是先前查询的子集,则从缓存中获取数据
- swift - 在视图控制器中画线代替 x 轴
- spyder - 为每一行 Python IDLE 显示输出
- c# - 对异步 Main() 中的等待行为的困惑