合并单词对计数:python



我写了一个映射器,它打印出单词对,每个单词对的计数为1。

import sys
from itertools import tee

for line in sys.stdin:
    line = line.strip()
    words = line.split()
def pairs(lst):
    return zip(lst,lst[1:]+[lst[0]])
for i in pairs(words):
    print i,1

我试着写一个可以创建字典的减速器,但我有点拘泥于如何总结它们。

import sys
mydict = dict()
for line in sys.stdin:
    (word,cnt) = line.strip().split('t') #t
    mydict[word] = mydict.get(word,0)+1
for word,cnt in mydict.items():
    print word,cnt

但它说没有足够的论据。分裂线,思想?非常感谢。

我认为问题出在(word,cnt) = line.strip().split('t') #t
split()方法返回一个列表,并尝试将其分配给(word, cnt),但由于项目数不匹配(有时可能只有一个单词),该方法不起作用
也许你想使用之类的东西

for word in line.strip().split('t'):
    mydict[word] = mydict.get(word, 0) + 1

如果空列表元素有问题,请使用list(filter(None, list_name))将其删除。

免责声明:我没有测试代码。此外,这仅指您的第二个示例

最新更新