ValueError: требуется больше, чем 0 значений для распаковки (списки python)

Я изучаю python из класса кода Google. Я пробовал упражнения.

def front_x(words): x_list, ord_list = [] for word in words: if word[0] == 'x': x_list.append(word) else: ord_list.append(word) return sorted(x_list) + sorted(ord_list) 

Я считаю, что ошибка возникает из-за инициализации двух пустых списков в одной строке. Если при инициализации их на отдельных строках больше ошибок не возникает. Это причина?

3 Solutions collect form web for “ValueError: требуется больше, чем 0 значений для распаковки (списки python)”

Вы пытаетесь использовать назначение кортежей:

 x_list, ord_list = [] 

вы, вероятно, хотели использовать множественное назначение:

 x_list = ord_list = [] 

который не будет делать то, что вы ожидаете; используйте вместо этого следующее:

 x_list, ord_list = [], [] 

или, лучше всего:

 x_list = [] ord_list = [] 

При использовании списка имен переменных, разделенных запятыми, Python ожидает, что будет последовательность выражений в правой части, которая соответствует числовым переменным; следующее было бы законным:

 two_lists = ([], []) x_list, ord_list = two_lists 

Это называется распаковкой. Если, с другой стороны, вы пытались использовать несколько присваиваний с одним пустым списком литералов ( x_list = ord_list = [] ), то оба x_list и ord_list будут указывать на один и тот же список, и любые изменения, сделанные с помощью одной переменной, будут видны на другая переменная:

 >>> x_list = ord_list = [] >>> x_list.append(1) >>> x_list [1] >>> ord_list [1] 

Лучше держать вещи кристально чистыми и использовать два отдельных назначения, предоставляя каждой переменной свой собственный пустой список.

Изменить строку

 x_list, ord_list = [] to x_list, ord_list = [], [] 

Тип возвращаемой функции не соответствует ожидаемым значениям функции …

проверьте количество переменных, возвращаемых функцией и переменными, которые вы ожидаете

  • Подсчет строк, слов и символов в текстовом файле с использованием Python
  • Сделать метод readline для Python распознавать как варианты конца строки?
  • Как обновить объект NDB из хранилища данных?
  • Нет модуля с именем Image tk
  • Объект 'str' не имеет атрибута 'decode' в Python3
  • Какова цель -m-переключателя?
  • Как создать резервную копию сайта AppEngine?
  • Python exec () объекта маршалированного кода
  • Почему скобка напечатана в Python 2.7?
  • string.split (text) или text.split () В чем разница?
  • Альтернатива `any`, которая возвращает последний оцениваемый объект?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.