Мне нужно сделать что-то очень похожее на то, что было задано здесь How would you zip an unknown number of lists in Python?, но в более общем случае.zip неизвестное количество списков с Python для нескольких списков
У меня есть следующие настройки:
a = [['a', '0', 'b', 'f', '78']]
b = [['3', 'w', 'hh', '12', '8']]
c = [['g', '7', '1', 'a0', '9'], ['45', '4', 'fe', 'h', 'k']]
мне нужно сжать эти списки вместе, чтобы получить:
abc = [['a', '3', 'g', '45'], ['0', 'w', '7', '4'], ['b', 'hh', '1', 'fe'], ['f', '12', 'a0', 'h'], ['78', '8', '9', 'k']]
, которые я могу генерировать с:
zip(a[0], b[0], c[0], c[1])
Но в списках a,b,c
содержится ряд подписок, которые будут варьироваться для последовательных прогонов, поэтому этот «человек ual "способ их расширения не будет работать.
Ближайший я могу получить это:
zip(a[0], b[0], *c)
Поскольку распаковке список с *
в любом другом положении, чем последний не допускается, «идеального» выражение:
zip(*a, *b, *c)
не Работа.
Как можно объединить несколько списков с неизвестным количеством подписок?
Спасибо Израиль! Мне нужно чаще использовать 'itertools'. – Gabriel
Добро пожаловать. В самом деле, itertools содержит некоторые полезные функции, такие как 'groupby',' product', 'permutations',' combination' и многое другое. Отличный модуль, основанный на генераторах. –