Что делает данный код на языке Python?

Как я понял есть некий массив в переменной A. Я закинул в компилятор и оно просто переворачивает данный массив. Но каким путем и зачем. Каким образом происходит транспонировка? И что делает каждая строка.

A = [
         
[11, 12, 13, 14],
         
[21, 22, 23, 24],
         
[31, 32, 33, 34]

]

for row in zip(*A):
     print(*row)

Ответы (2 шт):

Автор решения: Jack_oS

Функция zip() берёт на вход несколько списков и создаёт из них zip-объект (списки, если Python2) кортежей...

Первый элемент полученного списка содержит кортеж из первых элементов всех списков-аргументов, второй элемент - кортеж из вторых элементов и т.д.

Сначала вы инициализируете список списков (А), потом просите для каждого элемента "прозипованного А" сделать print.

→ Ссылка
Автор решения: Shamus Rezol
A=("Привет", "Пока")
B=("мир!", "Шарлота!")

for item in zip(A, B):
    print(item)

 

A=\
[[11, 12, 13, 14],         
 [21, 22, 23, 24],
 [31, 32, 33, 34]]

#for item in zip(*A):
# Эквивалентно:
#for row in zip(A[0], A[1], A[2]):
for COLUMN in zip(A[0], A[1], A[2]):
    #print(*COLUMN)
    # Эквивалентно:
    print(COLUMN[0], COLUMN[1], COLUMN[2])
# Имя row путает и совершенно неправильно.
# В данном случае COLUMN - это столбец матрицы A.

Что происходит?

  1. Распаковка аргументов. Почитайте о операторе распаковки (звездочка).

  2. Применение zip с аргументами строки матрицы. Аналогом без zip было бы:

    for column_index in range(4): column=[row[column_index] for row in A] print(*column)

→ Ссылка