Что делает данный код на языке Python?
Как я понял есть некий массив в переменной A. Я закинул в компилятор и оно просто переворачивает данный массив. Но каким путем и зачем. Каким образом происходит транспонировка? И что делает каждая строка.
A = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34]
]
for row in zip(*A):
print(*row)
Ответы (2 шт):
Функция zip() берёт на вход несколько списков и создаёт из них zip-объект (списки, если Python2) кортежей...
Первый элемент полученного списка содержит кортеж из первых элементов всех списков-аргументов, второй элемент - кортеж из вторых элементов и т.д.
Сначала вы инициализируете список списков (А), потом просите для каждого элемента "прозипованного А" сделать print.
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.
Что происходит?
Распаковка аргументов. Почитайте о операторе распаковки (звездочка).
Применение zip с аргументами строки матрицы. Аналогом без zip было бы:
for column_index in range(4): column=[row[column_index] for row in A] print(*column)