Lijst afdrukken zonder haakjes in een enkele rij

Ik heb een lijst in Python
bijv.

names = ["Sam", "Peter", "James", "Julian", "Ann"]

Ik wil de array op één regel afdrukken zonder de normale ” []

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)

Geeft de uitvoer als;

["Sam", "Peter", "James", "Julian", "Ann"]

Dat is niet het formaat dat ik wil, maar ik wil dat het zo is;

Sam, Peter, James, Julian, Ann

Opmerking: het moet in een enkele rij staan.


Antwoord 1, autoriteit 100%

print(', '.join(names))

Dit, zoals het klinkt, neemt gewoon alle elementen van de lijst en voegt ze samen met ', '.


Antwoord 2, autoriteit 30%

Hier is een eenvoudige.

names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")

de ster pakt de lijst uit en retourneert elk element in de lijst.


Antwoord 3, autoriteit 17%

Algemene oplossing, werkt op arrays van niet-strings:

>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'

Antwoord 4, autoriteit 9%

Als de invoerarray Integer-typeis, moet u eerst de array converteren naar de stringtype-array en vervolgens de join-methode gebruiken om mee te doen met ,of spatiewat je maar wilt. bijvoorbeeld:

>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>

Direct gebruik van join die het gehele getal en de string samenvoegt, geeft een fout zoals hierboven weergegeven.


Antwoord 5, autoriteit 6%

Er zijn twee antwoorden, de eerste is gebruik de ‘sep’-instelling

>>> print(*names, sep = ', ')

De andere staat hieronder

>>> print(', '.join(names))

Antwoord 6, autoriteit 4%

Dit is wat je nodig hebt

", ".join(names)

Antwoord 7, autoriteit 2%

','.join(list)werkt alleen als alle items in de lijst strings zijn. Als u een lijst met getallen wilt converteren naar een door komma’s gescheiden tekenreeks. zoals a = [1, 2, 3, 4]in '1,2,3,4'dan kun je ofwel

str(a)[1:-1] # '1, 2, 3, 4'

of

str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'

hoewel hiermee geen geneste lijsten worden verwijderd.

Om het terug te zetten naar een lijst

a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]

Antwoord 8, autoriteit 2%

probeer een asterisk te gebruiken voor de naam van de lijst met printopdracht:

names = ["Sam", "Peter", "James", "Julian", "Ann"]  
print(*names)

uitvoer:

Sam Peter James Julian Ann

Antwoord 9

Je moet de lijst doorlopen en end=" "gebruiken om het op één regel te houden

names = ["Sam", "Peter", "James", "Julian", "Ann"]
    index=0
    for name in names:
        print(names[index], end=", ")
        index += 1

Antwoord 10

print(*names)

dit werkt in python 3
als u wilt dat ze worden afgedrukt als spaties gescheiden.
Als je een komma of iets anders daartussen nodig hebt, ga je gang met de .join()-oplossing


Antwoord 11

Voor een array van het type integer moeten we deze eerst wijzigen in het type string en dan de join-functie gebruiken om schone uitvoer zonder haakjes te krijgen.

   arr = [1, 2, 3, 4, 5]    
    print(', '.join(map(str, arr)))

UITGANG – 1, 2, 3, 4, 5

Voor een array van het type string moeten we de join-functie rechtstreeks gebruiken om schone uitvoer zonder haakjes te krijgen.

   arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
    print(', '.join(arr)

OUTPUT – Ram, Mohan, Shyam, Dilip, Sohan


Antwoord 12

Ik weet niet of dit even efficiënt is als andere, maar eenvoudige logica werkt altijd:

import sys
name = ["Sam", "Peter", "James", "Julian", "Ann"]
for i in range(0, len(names)):
    sys.stdout.write(names[i])
    if i != len(names)-1:
        sys.stdout.write(", ")

Uitvoer:

Sam, Peter, James, Julian, Ann


Antwoord 13

De volgende functie neemt een lijst in en retourneert een reeks items uit de lijsten.
Dit kan vervolgens worden gebruikt voor log- of printdoeleinden.

def listToString(inList):
    outString = ''
    if len(inList)==1:
        outString = outString+str(inList[0])
    if len(inList)>1:
        outString = outString+str(inList[0])
        for items in inList[1:]:
            outString = outString+', '+str(items)
    return outString

Other episodes