Python3-For循环访问数组值

时间:2019-05-07 11:40:14

标签: python python-3.x

我有下面的Python脚本,计算文本文件中的单词数:

from collections import Counter

def main():
    with open(TEXT_FILE) as f:
        wordscounts = Counter(f.read().split())
        print(wordscounts)

以上给我:

Counter({'invoice': 10, 'USD': 8, 'order': 5})

现在,我要将这些单词添加到另一个文本文件dictionary.txt中,例如:

invoice 10
USD 8
order 5

下一次我处理文件并检查单词频率时,例如:

 Counter({'invoice': 2, 'USD': 1, 'tracking': 3})

它应该将计数加到文件中已有的单词上,并附加新的单词。

因此dictionary.txt变为:

invoice 12
USD 9
order 5
tracking 3

如果我尝试遍历wordscount,我只会得到实际的单词:

 for index, wordcount in enumerate(wordscounts):
     print(wordcount)

给我:

invoice
USD
order

但不是字数。

2 个答案:

答案 0 :(得分:2)

您需要阅读Counter字典。小例子

from collections import Counter
wordcount_1 = Counter("an example test test test".split())
wordcount_2 = Counter("another example test".split())

for word in wordcount_1:
    print(word, wordcount_1[word])
# example 1
# test 3
# an 1

如果要在内存中建立总和(如here所述),请使用

total = sum([wordcount_1, word_count_2], Counter())

答案 1 :(得分:1)

您可以使用以下方法获取实际字数:

for index, wordcount in enumerate(wordscounts):
     print(wordscounts[wordcount])

打印wordcount仅给您键,而打印wordcounts[wordcount]给您值。