Как я могу оптимально согласовать список символов в строку? - PullRequest
3 голосов
/ 12 ноября 2010

Данные:

list = ['a','b','x','d','s']

Я хочу создать строку str = "abxds".Как я могу это сделать?

Сейчас я делаю что-то вроде:

str = ""
for i in list:
    str = str + i
print(str)

Я знаю, что строки являются неизменяемыми в Python, и это создаст 7-строковый объект.И это уходит из моей памяти, когда я делаю это тысячи раз.

Есть ли более эффективный способ сделать это?

Ответы [ 3 ]

12 голосов
/ 12 ноября 2010
>>> theListOfChars = ['a', 'b', 'x', 'd', 's']
>>> ''.join(theListOfChars)
'abxds'

Кстати, не используйте list или str в качестве имен переменных , поскольку они уже являются именами встроенных функций.

(Кроме того, в Python нет char. "Символ" - это просто строка длины 1. Таким образом, метод ''.join работает и для списка строк.)

4 голосов
/ 12 ноября 2010

Ответ Кенни ТМ великолепен. Кроме того, если вы хотите сделать их запятыми или что-то в этом роде, это будет:

",".join(characterlist)

Это приведет к "a, b, x, d, s"

2 голосов
/ 12 ноября 2010

То, что вы ищете, это str.join():

>>> L = ['a','b','x','d','s']
>>> ''.join(L)
'abxds'

(Не называйте свою переменную list, это встроенное имя.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...