rda3mon
rda3mon

Reputation: 1719

How can I optimally concat a list of chars to a string?

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

Answers (3)

Chris
Chris

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

Thomas Wouters
Thomas Wouters

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

kennytm
kennytm

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

Related Questions