元组是计数器中的一个字典键——我如何将它变成一个字符串?
Tuple is a dictionary key in counter - how do I make it a string?
我是 Python 的新手。我使用 collections.Counter 来计算文本中出现次数最多的双字母组:
import sys, codecs
import nltk, collections
from nltk.util import ngrams
InputFile = codecs.open("testin.txt", 'r', 'utf-8')
text=InputFile.read().lower()
tokens = text.split()
bi_tokens = ngrams(tokens, 2)
bi_freq = collections.Counter(bi_tokens)
如果我使用:
for row in bi_freq.most_common(100):
print (row)
结果显示为:
(('star', 'wars'), 29)
(('blu', 'ray'), 21)
如果我使用:
for row in bi_freq.most_common(1000):
print (row[0], "\t", row[1])
结果看起来更干净一些:
('star', 'wars') 29
('blu', 'ray') 21
我想去:
star wars 29
blu ray 21
我将以制表符作为分隔符分两列导入到电子表格中。
所以我的问题是:当元组是字典中的键时,如何访问每个元组值,以便我可以将它们连接成一个字符串?
提前致谢。
使用 join()
从序列创建分隔字符串。
for bigram, c in b_freq.most_common(1000):
print(" ".join(bigram), c)
我是 Python 的新手。我使用 collections.Counter 来计算文本中出现次数最多的双字母组:
import sys, codecs
import nltk, collections
from nltk.util import ngrams
InputFile = codecs.open("testin.txt", 'r', 'utf-8')
text=InputFile.read().lower()
tokens = text.split()
bi_tokens = ngrams(tokens, 2)
bi_freq = collections.Counter(bi_tokens)
如果我使用:
for row in bi_freq.most_common(100):
print (row)
结果显示为:
(('star', 'wars'), 29)
(('blu', 'ray'), 21)
如果我使用:
for row in bi_freq.most_common(1000):
print (row[0], "\t", row[1])
结果看起来更干净一些:
('star', 'wars') 29
('blu', 'ray') 21
我想去:
star wars 29
blu ray 21
我将以制表符作为分隔符分两列导入到电子表格中。
所以我的问题是:当元组是字典中的键时,如何访问每个元组值,以便我可以将它们连接成一个字符串? 提前致谢。
使用 join()
从序列创建分隔字符串。
for bigram, c in b_freq.most_common(1000):
print(" ".join(bigram), c)