#python #python-3.x #printing
#python #python-3.x #печать
Вопрос:
В моей программе мне нужно вывести список точек в сетке (кортежи строк и столбцов). Однако иногда строки и столбцы необходимо поменять местами. В настоящее время я делаю это так:
if swapped:
for col, row in points:
print(row, col)
else:
for row, col in points:
print(row, col)
Есть ли какой-нибудь способ сделать это с помощью одного вызова print()
?.
Ответ №1:
Итак, поменяйте их местами:
for col, row in points:
if swapped:
col, row = row, col
print(col, row)
Ответ №2:
Вы имеете в виду?
for col, row in points:
print(row ' ' col if swapped else col ' ' row)
Результат будет таким, как ожидалось, при использовании только одного print
.
Комментарии:
1. Я думаю, это самая краткая версия. Я надеялся, что смогу использовать пару генераторов, чтобы избежать проверки
swapped
на каждой итерации
Ответ №3:
Самый простой и простой способ выполнить обмен в python заключается в следующем:
s1, s2 = s2, s1
По вашему мнению, код может выглядеть следующим образом
for col, row in points:
if swapped:
col, row = row, col
print(row, col)
Ответ №4:
посмотрите на приведенное ниже решение, поменяйте переменную местами:
for col, row in points:
if swapped:
row, col = col, row
print(row, col)
Ответ №5:
Это тоже должно сработать
points = [(1,2), (3,4)]
swapped = True
for col, row in points:
print((row, col) if swapped else (col, row))
#(2, 1)
#(4, 3)
Другой пример
points = [(1,2.5), ('x',4)]
swapped = False
for col, row in points:
print((row, col) if swapped else (col, row))
#(1, 2.5)
#('x', 4)