How can I convert a list into a space-separated string in Python?
For example, I want to convert this list:
my_list = ["how", "are", "you"]
into the string "how are you".
The spaces are important. I don’t want to get "howareyou".
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
" ".join(my_list)
You need to join with a space, not an empty string.
Method 2
I’ll throw this in as an alternative just for the heck of it, even though it’s pretty much useless when compared to " ".join(my_list) for strings. For non-strings (such as an array of ints) this may be better:
" ".join(str(item) for item in my_list)
Method 3
For Non String list we can do like this as well
" ".join(map(str, my_list))
Method 4
So in order to achieve a desired output, we should first know how the function works.
The syntax for join() method as described in the python documentation is as follows:
string_name.join(iterable)
Things to be noted:
- It returns a
stringconcatenated with the elements ofiterable. The separator between the elements being thestring_name. - Any non-string value in the
iterablewill raise aTypeError
Now, to add white spaces, we just need to replace the string_name with a " " or a ' ' both of them will work and place the iterable that we want to concatenate.
So, our function will look something like this:
' '.join(my_list)
But, what if we want to add a particular number of white spaces in between our elements in the iterable ?
We need to add this:
str(number*" ").join(iterable)
here, the number will be a user input.
So, for example if number=4.
Then, the output of str(4*" ").join(my_list) will be how are you, so in between every word there are 4 white spaces.
Method 5
you can iterate through it to do it
my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
my_string = my_string + ' ' + a
print(my_string)
output is
how are you
you can strip it to get
how are you
like this
my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
my_string = my_string + ' ' + a
print(my_string.strip())
Method 6
Why don’t you add a space in the items of the list itself, like :
list = ["how ", "are ", "you "]
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