Почему это понимание вложенного списка генерирует ошибку? - PullRequest
1 голос
/ 31 июля 2011
conn_request, weights = zip(*[
    ((conn, request), request[2])
    for conn in unchoked_conns
    for request in conn.peer_requests
])

Генерирует:

    for conn in unchoked_conns
ValueError: need more than 0 values to unpack

Я не могу понять, что я делаю неправильно.Я думаю, что это как-то связано с зависимостью request от conn?

Ответы [ 2 ]

4 голосов
/ 31 июля 2011
>>> a, b = zip(*[])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 0 values to unpack

Ваш LC создает пустой список.Попробуйте убедиться, что unchoked_conns имеет какие-либо элементы.

0 голосов
/ 31 июля 2011

Архивирование пустого списка возвращает один пустой список, следовательно, назначение не выполняется. Это согласуется с справкой почтового индекса, которая ясно говорит:

The returned list is truncated in length to the length of the shortest argument sequence

В вашем случае самая короткая последовательность аргументов имеет длину 0.

...