2013-11-12 15 views
5

Tôi đang cố in danh sách bằng Python có chứa chữ số và khi nó in các mục trong danh sách tất cả in trên cùng một dòng.In từng mục của một biến trên một dòng riêng biệt trong Python

print ("{} ".format(ports)) 

đây là đầu ra của tôi

[60, 89, 200] 

làm thế nào tôi có thể xem kết quả ở dạng này:

60 
89 
200 

Tôi đã thử print ("\n".join(ports)) nhưng điều đó không làm việc.

+0

đầu vào? đầu vào? = P – Izkata

Trả lời

1
ports = [60, 89, 200] 

for p in ports: 
    print (p) 
4

Vòng qua danh sách và in mỗi mục trên một dòng mới:

for port in ports: 
    print(port) 

hoặc chuyển đổi số nguyên của bạn để dây trước khi gia nhập:

print('\n'.join(map(str, ports))) 

hay nói print() sử dụng dòng mới như dấu tách và chuyển vào danh sách dưới dạng đối số riêng lẻ với cú pháp splat *:

print(*ports, sep='\n') 

Demo: in

>>> ports = [60, 89, 200] 
>>> for port in ports: 
...  print(port) 
... 
60 
89 
200 
>>> print('\n'.join(map(str, ports))) 
60 
89 
200 
>>> print(*ports, sep='\n') 
60 
89 
200 
6

tôi đã cố gắng ("\ n" .join (cổng)) nhưng không hoạt động.

Bạn đang ở rất gần. Vấn đề duy nhất là, không giống như print, join không tự động chuyển đổi mọi thứ thành chuỗi; bạn phải tự mình làm điều đó.

Ví dụ:

print("\n".join(map(str, ports))) 

... hoặc ...

print("\n".join(str(port) for port in ports)) 

Nếu bạn không hiểu hoặc comprehensions hoặc map, cả hai đều tương đương * này:

ports_strs = [] 
for port in ports: 
    ports_strs.append(str(port)) 
print("\n".join(ports_strs)) 
del ports_strs 

Trong các từ khác, map(str, ports) sẽ cung cấp cho bạn danh sách ['60', '89', '200'].

Tất nhiên sẽ là ngớ ngẩn khi viết ra đường dài; nếu bạn định sử dụng câu lệnh for rõ ràng, bạn cũng có thể chỉ trực tiếp print(port) mỗi lần qua vòng lặp, như trong câu trả lời của jramirez.


* Tôi thực sự gian lận một chút ở đây; cả hai cung cấp cho bạn một trình biến đổi qua một loại "danh sách lười biếng" không thực sự tồn tại với các giá trị đó. Nhưng bây giờ, chúng ta chỉ có thể giả vờ là một danh sách. (Và trong Python 2.x, đúng vậy.)

1

Nếu bạn đang sử dụng Python 3.x:

>>> ports = [60, 89, 200] 
>>> print(*ports, sep="\n") 
60 
89 
200 
>>> 

Nếu không, điều này sẽ làm việc:

>>> ports = [60, 89, 200] 
>>> for p in ports: 
...  print p 
... 
60 
89 
200 
>>> 
Các vấn đề liên quan