La stampa di ogni elemento di una variabile su una riga separata in Python

Sto cercando di stampare un elenco in Python che contiene cifre e quando stampa le voci dell’elenco di stampa sulla stessa linea.

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

ecco la mia uscita

[60, 89, 200]

come posso vedere il risultato in questa forma:

60
89
200

Ho provato print ("\n".join(ports)) ma che non funziona.

putput? ingresso? =P

OriginaleL’autore MSK | 2013-11-12

4 Replies
  1. 6

    Loop sopra l’elenco di stampa e di ogni elemento di una nuova linea:

    for port in ports:
        print(port)

    o convertire interi, stringhe prima di entrare:

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

    o dire print() utilizzare a capo, come separatori e pass nella lista come separare gli argomenti con il * splat sintassi:

    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
    Che strano che nella documentazione che appare quando si passa il mouse su la stampa, la non menzione di cui abbiamo bisogno per l’uso * quando si utilizza sep.
    questo non è specifico per print(). Generale Python sintassi di passare più argomenti posizionali come una sequenza. Vedere Cosa ** (stella doppia/asterisk) e * (asterisco asterisco) per i parametri?

    OriginaleL’autore Martijn Pieters

  2. 6

    ho provato print (“\n”.join(porte)) ma non funziona.

    Sei molto vicino. L’unico problema è che, a differenza di print, join non convertire automaticamente le cose a stringhe; dovete farlo voi.

    Per esempio:

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

    … o …

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

    Se non si capisce o genericità o map, entrambi sono equivalenti* per questo:

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

    In altre parole, map(str, ports) vi darà l’elenco ['60', '89', '200'].

    Naturalmente, sarebbe sciocco a scrivere che il lungo cammino, se avete intenzione di utilizzare un esplicito for istruzione, si potrebbe anche solo print(port) direttamente per ogni iterazione del ciclo, come in jramirez risposta.


    * Sono in realtà barare un po ‘ qui; sia per dare un iteratore su una sorta di “pigro lista” che in realtà non esistono tali valori. Ma per ora, possiamo solo far finta che sia un elenco. (E in Python 2.x, fu.)

    OriginaleL’autore abarnert

  3. 1

    Se siete su Python 3.x:

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

    In caso contrario, questo sarà il lavoro:

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

    OriginaleL’autore iCodez

Lascia un commento