У меня есть функция, которая возвращает большой набор целочисленных значений в виде кортежа. Например:Более элегантный/Pythonic способ печати элементов кортежа?
def solution():
return 1, 2, 3, 4 #etc.
Я хочу элегантно распечатать решение без представления кортежа. (т. е. круглые скобки вокруг чисел).
Я пробовал следующие два кода.
print ' '.join(map(str, solution())) # prints 1 2 3 4
print ', '.join(map(str, solution())) # prints 1, 2, 3, 4
Они оба работают, но выглядят несколько уродливо, и мне интересно, есть ли лучший способ сделать это. Есть ли способ «распаковать» кортежные аргументы и передать их в оператор print
в Python 2.7.5?
Я бы очень хотелось сделать что-то вроде этого:
print(*solution()) # this is not valid syntax in Python but I wish it was
вроде как кортежа распаковке, так что это эквивалентно:
print sol[0], sol[1], sol[2], sol[3] # etc.
За исключением без уродливых индексов. Есть ли способ сделать это?
Я знаю, что это глупый вопрос, потому что я просто пытаюсь избавиться от круглых скобок, но мне просто интересно, есть ли что-то, чего я не видел.
Параметр 'print' оператор добавляет пробелы между элементами последовательности по умолчанию, так что первый случай, вероятно, может быть достигается с помощью: 'print [x for x в решении()]'. –