2017-01-14 2 views
-1

Я работаю над программой подсчета слов.Значение Ошибка: требуется больше, чем 1 значение для распаковки

#!/usr/bin/env python 
import sys 

# maps words to their counts 
word2count = {} 

# input comes from STDIN 
for line in sys.stdin: 

    line = line.strip() 


    word, count = line.split('\t', 1) 

    try: 
     count = int(count) 
    except ValueError: 
     continue 

    try: 
     word2count[word] = word2count[word]+count 
    except: 
     word2count[word] = count 

for word in word2count.keys(): 
    print '%s\t%s'% (word, word2count[word]) 

Ошибка для этого кода:

word, count = line.split('\t', 1) 
ValueError : need more than 1 value to unpack 
+2

Это означает, что в 'строке' нет вкладок. – jonrsharpe

+0

Я также проверил с вкладками, ту же ошибку – Madhu

+0

Что вы имеете в виду, _also_? Что вы пытались изначально? –

ответ

0

Перемещение word, count = line.split('\t', 1) в try - except должно работать:

for line in sys.stdin: 
    line = line.strip() 
    try: 
     word, count = line.split('\t', 1) 
     count = int(count) 
    except ValueError: 
     continue 

Это пропустить все строки, которые не имеют номер на начало строки, разделенной вкладкой из остальной части строки.

+0

да, он работает. Спасибо – Madhu

+0

Отлично, что это помогло. BTW, вы можете [принять] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ответ, если он решает вашу проблему. –