首页 > 解决方案 > 如何创建一个显示单词所在行的索引,最好使用枚举?

问题描述

filename= input('please give name of file', )
lines= open(filename).readlines()
for i,line in enumerate(lines,start=1,):
        print(str(i),str(line)) 

我已经对文本文档的行进行了编号

我如何创建另一个索引来显示每个单词以及它出现在哪一行?

它应该是这样的:

以下文本文档中的编号行:

1)测试 2)这个 3)这个 4)这个 5)狗 6)狗 7)猫 8)猫 9)仓鼠 10)仓鼠

# 我正在努力做这个输出:

指数:

this           [2,3,4]
test           [1]
dog            [5,6]
cat            [7,8]
hamster        [9,10]

标签: numberslinewordenumerate

解决方案


这是字典的工作,您可以在其中轻松存储每个单词的行号:

index = dict()
for i, line in enumerate(lines, 1):
    if not line in index: index[line] = []
    index[line].append(i)
for word in index: print(word.strip(), index[word], sep='\t')

数字(代表行号)应包含在文本文档中。

在这种情况下,我们必须将数字与单词分开:

index = dict()
for line in lines:
    i, word = line.strip().split(')')
    if not word in index: index[word] = []
    index[word].append(int(i))
for word in index: print(word, index[word], sep='\t')

推荐阅读