Массив печати Python с новой строкой

Я новичок в python и имею простой массив:

op = ['Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye']

Когда я использую pprint, я получаю этот вывод:

['Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye']

В любом случае я могу удалить кавычки, запятые и скобки и распечатать на отдельной строке. Чтобы результат был таким:

Hello
Good Morning
Good Evening
Good Night
Bye

Ответ 1

Вы можете join строки с новой строкой и напечатать результирующую строку:

print "\n".join(op)

Ответ 2

Вы, кажется, смущены. Позвольте мне помочь вам прояснить некоторые вещи в вашем уме =)

  • Прежде всего, у вас есть list, а не массив. Разница в том, что список является гораздо более динамичной и гибкой структурой данных (в списке в динамических языках, таких как python). Например, вы можете иметь несколько объектов разных типов (например, 2 string s, 3 int s, один socket и т.д.)
  • Котировки вокруг слов в списке означают, что они являются объектами типа string.
  • Когда вы выполняете print op (или print(op) в этом случае в python 3+), вы по существу просите python показать вам печатное представление этого конкретного объекта списка и его содержимого. Следовательно, цитаты, запятые, скобки и т.д.
  • В python у вас очень простой цикл for each, пригодный для повторения итерации содержимого повторяющихся объектов, например list. Просто сделайте следующее:

for greeting in op: print greeting

Ответ 3

Распечатайте строку за строкой

for word in op:
    print word

Это имеет то преимущество, что если op оказывается массово длинным, вам не нужно создавать новую временную строку исключительно для печати. ​​