Как я могу объединить эти вызовы для печати ()? - PullRequest
3 голосов
/ 19 апреля 2019

В моей программе мне нужно вывести список точек в сетке (кортежи строки и столбца).Однако иногда строки и столбцы необходимо менять местами.В настоящее время я делаю это так:

 if swapped:
    for col, row in points:
        print(row, col)
 else:
    for row, col in points:
        print(row, col)

Есть ли способ сделать это одним вызовом print() ?.

Ответы [ 5 ]

3 голосов
/ 19 апреля 2019

Итак, поменяйте их местами:

for col, row in points:
    if swapped:
        col, row = row, col
    print(col, row)
3 голосов
/ 19 апреля 2019

Вы имеете в виду?

for col, row in points:
    print(row + ' ' + col if swapped else col + ' ' + row)

Вывод будет таким, как ожидалось, с использованием только одного print.

1 голос
/ 19 апреля 2019

Самый простой и простой способ сделать своп в Python - это следующее:

s1, s2 = s2, s1

На ваш взгляд код может выглядеть следующим образом

for col, row in points:
  if swapped:
    col, row = row, col
  print(row, col)
0 голосов
/ 19 апреля 2019

Это также должно работать


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)
0 голосов
/ 19 апреля 2019

посмотрите на приведенное ниже решение, поменяйте местами переменную:

for col, row in points:
    if swapped:
        row, col = col, row
    print(row, col)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...