2012-12-15 18 views
8

Jestem nowym python i mieć prostą tablicę:Python print tablica z nową linią

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

Gdy używam pprint, otrzymuję ten wynik:

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

Czy mimo to mogę usuń cudzysłowy, przecinki i nawiasy oraz drukuj na osobnej linii. Tak, że wyjście jest tak:

Hello 
Good Morning 
Good Evening 
Good Night 
Bye 

Odpowiedz

5

Wydruk linii niego przez linię

for word in op: 
    print word 

Ma to tę zaletę, że jeśli op dzieje się masowo długo, wtedy nie trzeba utworzyć nowy tymczasowy ciąg znaków wyłącznie do celów drukarskich.

19

Można join struny z nowej linii i wydrukować wynikowy ciąg:

print "\n".join(op) 
8

Wydaje się mylić. Pozwól mi pomóc ci wyjaśnić pewne rzeczy w twoim umyśle =)

  1. Przede wszystkim masz tam list, a nie tablicę. Różnica polega na tym, że lista jest bardziej dynamiczną i elastyczną strukturą danych (na liście w językach dynamicznych, takich jak python). Na przykład można mieć wiele obiektów różnych typów (np mieć 2 string s, 3 int s, jeden socket, itp)
  2. cudzysłowów wokół słów na liście oznacza, że ​​są obiekty typu string.
  3. Kiedy robisz print op (lub w tej kwestii w pythonie 3+), zasadniczo pytasz pythona, aby pokazać reprezentację do drukowania tego konkretnego obiektu listy i jego zawartości. Stąd cytaty, przecinki, nawiasy, itp.
  4. W pytonie masz bardzo łatwą pętlę for each, używaną do iteracji zawartości iterowanych obiektów, takich jak list. Wystarczy to zrobić:

for greeting in op: print greeting

Powiązane problemy