Почему это понимание списка не работает? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь создать новый встроенный список из двух списков (a и b), как показано ниже:

list_a = ['abc','def','opq']
list_b = [1,2]
resulting_list = 
[['abc',1,2],
 ['def',1,2],
 ['opq',1,2]]

Ниже я попробовал функцию с пониманием списка, но она не возвращает ожидаемый результат.

def combine_list(list_a, list_b):
    return [[post].extend(list_b) for post in list_a]

Я ожидал вернуть:

[['abc',1,2],
 ['def',1,2],
 ['opq',1,2]]

Вместо этого я получил

[None, None, None]

Почему не работает понимание списка?

Ответы [ 3 ]

4 голосов
/ 28 октября 2019

extend - мутатор. Он изменяет список слева и ничего не возвращает. Постижения списка должны придерживаться функциональных операций без побочных эффектов.

[[post] + list_b for post in list_b]

И изменить post_list на list_b.

0 голосов
/ 28 октября 2019

Во-первых, это не должно быть post_list.

>>> [[post]+list_b for post in list_a]
[['abc', 1, 2], ['def', 1, 2], ['opq', 1, 2]]
0 голосов
/ 28 октября 2019
def combine_list(list_a, list_b):
return [[post].extend(list_b) for post in post_list]

Поскольку post_list не существует ни в вашей функции, ни в качестве глобальной переменной.

...