Я хочу, чтобы пройти через текстовый файл и создать словарь, который имеет ключевые слова и количество раз они всплывают up.I хотят, чтобы это своего рода выглядеть следующим образом:Целые в defaultdict
defaultdict(<type 'int'>, {'keyword1': 1, 'keyword2': 0, 'keyword3': 3, 'keyword4': 9})
прямо сейчас получить что-то, что выглядит следующим образом:
defaultdict(<type 'int'>, {'keyword1': 1})
Я могу напечатать каждое ключевое слово в моем словаре, как она перебирает, хотя, так что я знаю, что это что-то попробовать. Я также знаю, что больше этих ключевых слов должно появиться, и у них должны быть экземпляры в текстовом файле. Мой код:
find_it=['keyword1', 'keyword2', 'keyword3', 'keyword4']
with open('inputfile.txt', 'r') as f:
out = defaultdict(int)
for key in find_it:
counter=0
for line in f:
if key in line:
out[key] += 1
my_keys=dict(**out)
Что мне здесь не хватает?
Стоит отметить, что это подсчитывает количество строк, на которых появляется каждое слово (это то, что код вопроса также учитывал бы, если бы он работал). Это может быть или не быть желательным. Код Джорана Бисли, напротив, будет подсчитывать количество выступлений каждого слова, независимо от того, какие строки они появляются (так что строка типа «ключевое слово1 ключевое слово2 ключевое слово1» будет увеличивать количество ' «keyword1» - на два). – Blckknght
@Blckknght хороший улов! Исправлено :-) –