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