Reputation: 1719
The data:
list = ['a','b','x','d','s']
I want to create a string str = "abxds". How can I do that?
Right now I am doing something like:
str = ""
for i in list:
str = str + i
print(str)
I know strings are immutable in Python and this will create 7 string object. And this goes out of my memory when I do thousands of times.
Is there a more efficient way of doing this?
Upvotes: 5
Views: 24188
Reputation: 2735
KennyTM's answer is great. Also, if you wanted to make them comma separated or something, it'd be:
",".join(characterlist)
This would result in "a,b,x,d,s"
Upvotes: 4
Reputation: 133475
The thing you're looking for is str.join()
:
>>> L = ['a','b','x','d','s']
>>> ''.join(L)
'abxds'
(Don't name your variable list
, it's a builtin name.)
Upvotes: 2
Reputation: 523464
>>> theListOfChars = ['a', 'b', 'x', 'd', 's']
>>> ''.join(theListOfChars)
'abxds'
BTW, don't use list
or str
as variable names as they are names of built-in functions already.
(Also, there is no char
in Python. A "character" is just a string of length 1. So the ''.join
method works for list of strings as well.)
Upvotes: 14