2015-12-13 4 views
1

Я получаю следующую ошибку 'TypeError: объект типа' NoneType 'не имеет len()' для программы ниже. Почему я не могу перебирать список и сравнивать его с другим списком?ТипError: объект типа 'NoneType' не имеет len(), итерации по списку

word_list = list() 

while True: 
    file_name = raw_input('Enter file name: ') 
    if len(file_name) < 1: exit() 
    try: 
     file = open(file_name) 
     break 

    except: 
     print 'Please enter a valid file name.' 
     continue 

for line in file: 
    line = line.rstrip() 
    words = line.split() 
    for word in words: 
     if len(word_list) <1: 
      word_list = word_list.append(word) 

     else: 
      if not word in word_list: 
       word_list = word_list.append(word) 

word_list = word_list.sort() 
print word_list 
+0

Коротко: 'append()' мутирует объект на месте и возвращает 'None'. Не сохраняйте результат операции 'append()' назад к той же ссылке. Просто выполните операцию, 'word_list.append (word)'. – TigerhawkT3

ответ

1

list.appendNone.

Следующая строка:

word_list = word_list.append(word) 

следует заменить:

word_list.append(word) 

В противном случае, word_list становится None вызывая TypeError позже.

Смежные вопросы