Это цель встроенной функции zip
. Вам просто нужно распаковать свои списки, как вы это называете Что-то вроде:
allrows = [['NEPW46486', 'NEPW46550', 'sersic', 20.04, 21.12],
['NEPW89344', 'NEPW89346', 'sersic', 20.33, 19.66]]
for item in zip(*allrows): # unpack with *allrows
print(item)
Сетей:
('NEPW46486', 'NEPW89344')
('NEPW46550', 'NEPW89346')
('sersic', 'sersic')
(20.04, 20.33)
(21.12, 19.66)
Если по какой-то причине zip()
неудовлетворительно, для понимания списка обычно проще всего создать реальную структуру кода, а затем сжать ее. Начиная с:
cols = []
for index, item in enumerate(allrows[0]):
col = []
for row in allrows:
col.append(row[index])
cols.append(col)
print(cols)
Получаем желаемое
[['NEPW46486', 'NEPW89344'], ['NEPW46550', 'NEPW89346'], ['sersic', 'sersic'], [20.04, 20.33], [21.12, 19.66]]
Итак, мы можем просто сжать его до одной строки, например:
cols = [[row[index] for row in allrows] for index, item in enumerate(allrows[0])]
print(cols)
Что снова дает:
[['NEPW46486', 'NEPW89344'], ['NEPW46550', 'NEPW89346'], ['sersic', 'sersic'], [20.04, 20.33], [21.12, 19.66]]