Неоткрывающийся список возвращает неожиданную ошибку в Python - PullRequest
0 голосов
/ 19 мая 2019

Я прочитал все сообщения о раскрытии списков в Stackoverflow, но не могу найти решение своей проблемы.

У меня есть два списка, и я хочу добавить один элемент из list2 к каждому элементу в list1.

l1 = [[1,2],[3,4]]
l2 = [5, 7]

и результат, который я получаю,

[[1, 2, 5], [3, 4, 6]]

Я пробовал этот код

for i in range(len(l2)):
    l1[i].extend(l2[i])

print(l1)

, но возвращает ошибку "Ошибка типа: объект 'int' не повторяется"

Когда каждый элемент l2 является списком сам по себе, например, l2 = [[5],[7]] мой код работает нормально Это почему? И как мне настроить мой код для работы, когда l2 в этом формате l2 = [5, 7]

Ответы [ 3 ]

1 голос
/ 19 мая 2019

Используйте zip() для итерации по двум или более вещам параллельно.Использование range() для создания индексов, когда они вам не нужны, не пифонично.

xss = [[1,2],[3,4]]
ys = [5,7]

for xs, y in zip(xss, ys):
    xs.append(y)

print(xss)

[[1, 2, 5], [3, 4, 7]]
1 голос
/ 19 мая 2019

list1.extend(list2) для создания list1+list2.Но вы не предоставляете list2, это просто элемент.Правильная функция для этого - list1.append(element2), что совпадает с list1+[element2]

0 голосов
/ 19 мая 2019
l1 = [[1,2],[3,4]]
l2 = [5, 7]
for i in range(len(l2)):
l1[i].append(l2[i]);

print(l1)

[[1, 2, 5], [3, 4, 7]]

Extend is for objects.
Append is what you need here.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...