首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中按照确切的术语打印单词

如何在python中按照确切的术语打印单词
EN

Stack Overflow用户
提问于 2021-01-23 22:41:03
回答 2查看 40关注 0票数 0

我需要在一篇文章中打印“ed”后面的单词。但是,它不能正常工作--我认为"following_word“这个表达式有问题。text.txt文件包含以下文字:"Ed timido e cheto ed inesperto“,您能帮我一下吗?

代码语言:javascript
复制
with open("text.txt", "r", encoding="utf8") as rf:
    text=list(rf)

y=["ed"]

for word in text:
    word_list=word.lower().split()
    for x in word_list:
        if x in y:
            following_word=word_list[word_list.index(y) +1]
            print(x+" "+following_word)

其结果应该是:

爱迪欧

艾德·英斯佩托,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-23 23:07:49

  1. 为了获得更简洁的解决方案,您可以使用标准的回复 (正则表达式)模块:
代码语言:javascript
复制
import re
search_terms = ["ed"]

for term in search_terms:
    following_words = re.findall(r"%s (\w+)" % term, string.lower())
    print('\n'.join(f'{term} {word}' for word in following_words))

输出:

代码语言:javascript
复制
ed io
ed inesperto
  1. 对于您已经拥有的绝对最小数量的更改,请使用枚举,并避免索引超出界限的错误,只需在每一行结束前查看一次:
代码语言:javascript
复制
search_terms = ["ed"]

for words_line in text:
    word_list = words_line.lower().split()
    for i, word in enumerate(word_list[:-1]): # only look until the penultimate character
        if word in search_terms:
            following_word = word_list[i + 1]
            print(x + " " + following_word)

(同一产出)

票数 2
EN

Stack Overflow用户

发布于 2021-01-23 22:55:35

就像我在评论中所写的,被"ed“分开,如下所示:

代码语言:javascript
复制
string = "Ed io timido e cheto ed inesperto"
for s in string.lower().split("ed "):
    if len(s):
        print(f"ed {s.split()[0]}")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65865223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档