Питон, Карта, Лямбда из Списка - PullRequest
0 голосов
/ 06 июня 2018

Итак, я попробовал это

x=[2,3,4]
y=[4,5]
z=0
x = [2, 3, 4]
y = [4, 5]
t = map(lambda v : map(lambda w : v + w, y), x)
t == [[6, 7], [7, 8], [8, 9]]
z = sum(t, [])

наши циклы повторяются по x, повторяются по y и добавляют сумму значений к z.Почему-то я получаю ошибку

TypeError: can only concatenate list (not "map") to list

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

В качестве более удобочитаемой и эффективной альтернативы вы можете использовать itertools.chain:

from itertools import chain

t = [[6, 7], [7, 8], [8, 9]]

res = list(chain.from_iterable(t))

print(res)

[6, 7, 7, 8, 8, 9]
0 голосов
/ 06 июня 2018

Функция map возвращает map object, а не список.Функция sum ожидает последовательность списков.Вы должны преобразовать объекты карты в списки:

t = map(lambda v : list(map(lambda w : v + w, y)), x)
z = sum(t, [])
#[6, 7, 7, 8, 8, 9]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...