result = next(zip(*[(2,2,3), (4,5,2), (1,3,8)]))
Или, если записи на самом деле являются строками:
result = next(zip(*(data.split('-') for data in ['2-2-3', '4-5-2', '1-3-8'])))
Объяснение:
>>> list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))
[(2, 4, 1), (2, 5, 3), (3, 2, 8)]
Вы хотите получить первый элемент, чтобы вы могли сделать list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))[0]
, но в этом нет необходимости, поскольку zip
создает свои возвращаемые значения на лету и не вычисляет их все сразу (так что это не тратит память), поэтому вы можете заставить его генерировать и возвращать только первое значение с next(zip(...))
.