вам нужно применить zip
дважды, чтобы выполнить 2 транспонирования:
inlist = [[(-8, -8), (2, 0)], [(0, 2), (-1, -1)]]
print(list(zip(*(zip(*x) for x in inlist))))
результат:
[((-8, 2), (0, -1)), ((-8, 0), (2, -1))]
это дает tuples
внутри, потому что zip
создает их. Чтобы получить списки, это немного сложнее, потому что вам нужно конвертировать в list
на 2 уровнях:
print([[list(z) for z in y] for y in zip(*(zip(*x) for x in inlist))])
печать:
[[[-8, 2], [0, -1]], [[-8, 0], [2, -1]]]