I have a list in Python
e.g.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
I want to print the array in a single line without the normal ” []
names = ["Sam", "Peter", "James", "Julian", "Ann"] print (names)
Will give the output as;
["Sam", "Peter", "James", "Julian", "Ann"]
That is not the format I want instead I want it to be like this;
Sam, Peter, James, Julian, Ann
Note: It must be in a single row.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
print(', '.join(names))
This, like it sounds, just takes all the elements of the list and joins them with ', '.
Method 2
Here is a simple one.
names = ["Sam", "Peter", "James", "Julian", "Ann"] print(*names, sep=", ")
the star unpacks the list and return every element in the list.
Method 3
General solution, works on arrays of non-strings:
>>> print str(names)[1:-1] 'Sam', 'Peter', 'James', 'Julian', 'Ann'
Method 4
If the input array is Integer type then you need to first convert array into string type array and then use join method for joining with , or space whatever you want. e.g:
>>> 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 using of join which will join the integer and string will throw error as show above.
Method 5
There are two answers , First is use ‘sep’ setting
>>> print(*names, sep = ', ')
The other is below
>>> print(', '.join(names))
Method 6
This is what you need
", ".join(names)
Method 7
try to use an asterisk before list’s name with print statement:
names = ["Sam", "Peter", "James", "Julian", "Ann"] print(*names)
output:
Sam Peter James Julian Ann
Method 8
','.join(list) will work only if all the items in the list are strings. If you are looking to convert a list of numbers to a comma separated string. such as a = [1, 2, 3, 4] into '1,2,3,4' then you can either
str(a)[1:-1] # '1, 2, 3, 4'
or
str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'
although this won’t remove any nested list.
To convert it back to a list
a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]
Method 9
For array of integer type, we need to change it to string type first and than use join function to get clean output without brackets.
arr = [1, 2, 3, 4, 5]
print(', '.join(map(str, arr)))
OUTPUT – 1, 2, 3, 4, 5
For array of string type, we need to use join function directly to get clean output without brackets.
arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
print(', '.join(arr)
OUTPUT – Ram, Mohan, Shyam, Dilip, Sohan
Method 10
print(*names)
this will work in python 3
if you want them to be printed out as space separated.
If you need comma or anything else in between go ahead with .join() solution
Method 11
You need to loop through the list and use end=" "to keep it on one line
names = ["Sam", "Peter", "James", "Julian", "Ann"]
index=0
for name in names:
print(names[index], end=", ")
index += 1
Method 12
I don’t know if this is efficient as others but simple logic always works:
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(", ")
Output:
Sam, Peter, James, Julian, Ann
Method 13
The following function will take in a list and return a string of the lists’ items.
This can then be used for logging or printing purposes.
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
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0