Преобразование списка к строке [дубликат]

62
задан 18 May 2015 в 18:37

5 ответов

buffer=['a','b','c']
obj=str(buffer)
obj[1:len(obj)-1]

даст ", 'b', 'c'", как произведено

5
ответ дан 31 October 2019 в 13:59
# it handy if it used for output list
list = [1, 2, 3]
stringRepr = str(list)
# print(stringRepr)
# '[1, 2, 3]'
1
ответ дан 31 October 2019 в 13:59

От официальный Python, Программируя FAQ для Python 3.6.4:

, Что самый эффективный путь состоит в том, чтобы связать много строк вместе? str и bytes объекты неизменны, поэтому конкатенация многих строк вместе неэффективна, поскольку каждая конкатенация создает новый объект. В общем случае общая стоимость во время выполнения квадратична в общей длине строки.

Для накопления многих объектов ул. рекомендуемая идиома должна разместить их в список и вызов str.join() в конце:

chunks = []
for s in my_strings:
    chunks.append(s)
result = ''.join(chunks)

(другая довольно эффективная идиома должна использовать io.StringIO)

Для накопления многих объектов байтов рекомендуемая идиома должна расшириться bytearray объект с помощью оперативной конкатенации (+= оператор):

result = bytearray()
for b in my_bytes_objects:
    result += b
1
ответ дан 31 October 2019 в 13:59
file2.write( str(buffer) )

Объяснение: str(anything) преобразует любой объект Python в его строковое представление. Подобный выводу Вы добираетесь, если Вы делаете print(anything), но как строка.

ПРИМЕЧАНИЕ: Это, вероятно, не то, что хочет OP, поскольку она не имеет никакого контроля о том, как элементы buffer связываются - она поместит , между каждым - но это может быть полезно для кого-то еще.

5
ответ дан 31 October 2019 в 13:59

Метод 1:

import functools
file2.write(functools.reduce((lambda x,y:x+y), buffer))

Метод 2:

import functools, operator
file2.write(functools.reduce(operator.add, buffer))

Метод 3:

file2.write(''.join(buffer))
2
ответ дан 31 October 2019 в 13:59

Другие вопросы по тегам:

Похожие вопросы: