2013-11-12 28 views
5

'da yazdırmak Python'da, basamak içeren ve listedeki tüm öğeleri aynı satırda yazdırırken yazdırılan bir listeyi yazdırmaya çalışıyorum.Bir değişkenin her bir öğesini Python

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

burada bu formda sonucu görebilirsiniz nasıl benim çıkış

[60, 89, 200] 

: Ben print ("\n".join(ports)) denedi ama bu işe yaramazsa

60 
89 
200 

.

liste üzerinde
+0

putput? giriş? P = – Izkata

cevap

1
ports = [60, 89, 200] 

for p in ports: 
    print (p) 
4

Döngü ve yeni bir satırda her öğeyi yazdırmak: katılmadan önce

for port in ports: 
    print(port) 

veya dizeleri için tamsayılar dönüştürmek:

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

veya yeni satır kullanmak print() anlatmak ayırıcıları ve listede * uyarlama sözdizimi ile ayrı argümanlar olarak iletin:

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

Demo:

>>> 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

i denedim baskı ("\ n" .join (port)) ama çalışmıyor.

Çok yakınsınız. Tek sorun şu ki, print, join'dan farklı olarak, şeyler otomatik olarak dizelere dönüştürülmez; Bunu kendin yapmalısın.

Örneğin

: Ya comprehensions veya map anlamadıysanız

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

... ya da ...

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

, hem buna * eşdeğerdir:

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

yılında diğer kelimeler, map(str, ports) size liste verecek ['60', '89', '200'] Tabii ki bunu uzun yoldan yazmak saçma olurdu; Açık bir for ifadesini kullanacaksanız, jramirez'nin cevabında olduğu gibi, döngü boyunca her defasında doğrudan yalnızca print(port) da olabilirsiniz.


* Ben aslında burada biraz hile yapıyorum; her ikisi de bu değerlerle gerçekte mevcut olmayan bir çeşit "tembel liste" üzerinden yineleyici verir. Ama şimdilik, sadece bir liste gibi yapabiliriz. (Ve Python 2.x'te, öyleydi.)

1

Eğer Python 3 kullanıyorsanız.x: Aksi

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

, işe yarayacak:

>>> ports = [60, 89, 200] 
>>> for p in ports: 
...  print p 
... 
60 
89 
200 
>>> 
İlgili konular