我正在尝试通读一个 txt.file 并打印关键字出现的行号。这是我目前所拥有的:
def index(filename, word_lst):
dic = {}
line_count = 0
for word in word_lst:
dic[word] = 0
with open(filename) as infile:
for line in infile:
line_count += 1
for word in word_lst:
if word in line:
dic[word] = line_count
print(dic)
输出:
>>>{'mortal': 30, 'demon': 122, 'dying': 9, 'ghastly': 82, 'evil': 106, 'raven': 120, 'ghost': 9}
上面的输出有些正确。我遇到的问题是,例如,raven 应该打印 44、53、55、64、78、97、104、111、118、120,而不仅仅是它出现的最后行号 (120)。
我已经在这个问题上工作了整整一天,但我不确定如何在不覆盖字典中已存储的行号的情况下添加关键字出现的所有行号。
我是 Python 的新手,所以如果我遗漏了一些简单的东西,我深表歉意,如果有任何提示,我将不胜感激。
最佳答案
要从单词映射多个行号,您需要映射到list
,而不是int
:
def index(filename, word_lst):
dic = {}
line_count = 0
for word in word_lst:
dic[word] = [] # <---
with open(filename) as infile:
for line in infile:
line_count += 1
for word in word_lst:
if word in line:
dic[word].append(line_count) # <----
print(dic)
关于python - 使用关键字的行号创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716072/