buffer=['a','b','c']
obj=str(buffer)
obj[1:len(obj)-1]
даст ", 'b', 'c'", как произведено
# it handy if it used for output list
list = [1, 2, 3]
stringRepr = str(list)
# print(stringRepr)
# '[1, 2, 3]'
От официальный 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
file2.write( str(buffer) )
Объяснение: str(anything)
преобразует любой объект Python в его строковое представление. Подобный выводу Вы добираетесь, если Вы делаете print(anything)
, но как строка.
ПРИМЕЧАНИЕ: Это, вероятно, не то, что хочет OP, поскольку она не имеет никакого контроля о том, как элементы buffer
связываются - она поместит ,
между каждым - но это может быть полезно для кого-то еще.
Метод 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))