Расширение списка списком с отдельными элементами списка Ошибка - PullRequest
1 голос
/ 05 марта 2019

Я пытался расширить список, чтобы добавить элемент в начале, который является числом:

groups = list([list([a, b, c]),list([a2, b2, c2])])
numbers = list([1,2])

Результат должен выглядеть следующим образом:

result = [[1,a, b, c],[2,a2, b2, c2]]

Это мой код:

result = []
for i in groups :
    for j in numbers:
        result.append([j,i])

Есть ли у вас какие-либо предположения о том, что я могу делать неправильно? или подсказка о том, как решить проблему?

Большое спасибо заранее

1 Ответ

2 голосов
/ 05 марта 2019

Проблема вашего подхода заключается в том, что вы используете два отдельных цикла for, когда вы действительно хотите выполнять итерацию по обоим спискам одновременно.Для этих случаев подойдет zip.Это позволяет объединять несколько итераций.Таким образом, вы можете вместо этого сделать:

result = []
for i,j in zip(numbers, groups):
    result.append([i]+j)

print(result)
# [[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]

Для более краткого решения вы можете использовать сжатие списка, чтобы добавить элементы из обоих списков (обратите внимание, что элементы в numbers должны быть обращены ксписки):

[[i]+j for i,j in zip(numbers, groups)]

Вывод

[[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]
...