枚举文本的段落

问题描述

我有一段文字,但我想给这些段落编号(从 1 开始,而不是 0)。

例如我有这个:

Easter eggs,Yellow and blue,Easter eggs,For me and you.


Easter eggs,Candy sweet,Are good to eat.

如果我给程序一行(或文本中的某个词),我希望它告诉我它在哪个段落中,例如如果我给:

Candy sweet

我想要:

2

我想在我的小翻译程序中实现这个功能。事实上,我希望给定一个小句子,程序知道如何进行翻译,然后是段落的编号。谢谢

解决方法

您基本上需要将字符串转换为列表,然后逐个元素检查文本是否在列表中,如果有意义。

text = '''Easter eggs,Yellow and blue,Easter eggs,For me and you.


Easter eggs,Candy sweet,Are good to eat.'''

search = input("Text To Be Searched: ")

split_lst = text.split("\n\n")
count = 1

for i in split_lst:
    if search in i:
        print(count)
    count += 1
,

首先,您需要定义什么是段落,假设它意味着文本的两个部分之间有一个空行。这等于 \n\nos.linesep * 2
现在,您可以使用 split 将文本拆分为段落。
最后一部分是搜索给定的子文本,我们可以遍历 split 中的段落并查找子文本是否存在。
它看起来像这样

import os

TEXT = """...."""

def get_sentence_location(sentence):
    paragraph_seperator = os.linesep * 2
    paragraphs = TEXT.split(paragraph_seperator)
    for index,paragraph in enumerate(paragraphs):
        if sentence in paragraph:
            return index + 1
,
for i in enumerate(<iterate_here,start=1):
    print(i)

只需在枚举函数上使用关键字参数即可。

,

使用string.split()

s = """
Easter eggs,Are good to eat."""
to_be_found = 'Candy sweet'

for index,paragraph in enumerate(s.split('\n\n')):
    if to_be_found in paragraph:
        print(index+1)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...