问题描述
我有一段文字,但我想给这些段落编号(从 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\n
或 os.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)
只需在枚举函数上使用关键字参数即可。
,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)