如何存储由“for statement”变量获得的打印结果?

时间:2016-04-21 05:53:25

标签: python

我正在计算一些特定的二元词频率。 以下是我的代码的一部分。

sorted_bigrams = sorted(bigrams.items(), key = lambda pair:pair[1], reverse = True)

for bigram, count in sorted_bigrams:
    if bigram == ("interesting", "news"):
        print count

在这里,我想存储打印结果的计数数“count”,这是bigram的计数数“有趣,新闻”

我该怎么办..

2 个答案:

答案 0 :(得分:0)

如果您想存储总数:

sorted_bigrams = sorted(bigrams.items(), key = lambda pair:pair[1], reverse = True)

total_count = 0
for bigram, count in sorted_bigrams:
    if bigram == ("interesting", "news"):
        print count
        total_count += count
print total_count

如果您想跟踪计数的细分:

sorted_bigrams = sorted(bigrams.items(), key = lambda pair:pair[1], reverse = True)

counts = []
for bigram, count in sorted_bigrams:
    if bigram == ("interesting", "news"):
        print count
        counts.append(count)
print counts

答案 1 :(得分:0)

如果bigrams是一个将bigram存储为密钥且计为值的字典,则您不需要对其进行排序以获得总计数,因为密钥是唯一的。

如果bigrams是元组列表,您可以使用collections.Counter来获取总计数。

In [30]: bigrams
Out[30]: [(('a', 'b'), 10), (('d', 'f'), 3), (('a', 'c'), 15), (('a', 'b'), 2)]

In [31]: counter = Counter()

In [32]: for key, val in bigrams:
    counter[key] += val
   ....:     

In [33]: counter[('a', 'b')]
Out[33]: 12