Python 如何将字符列表最佳地压缩为字符串?

Python 如何将字符列表最佳地压缩为字符串?,python,string,Python,String,数据: list = ['a','b','x','d','s'] 我想创建一个字符串str=“abxds”。我该怎么做 现在我正在做一些类似的事情: str = "" for i in list: str = str + i print(str) 我知道字符串在Python中是不可变的,这将创建7字符串对象。当我做上千次的时候,这些都会从我的记忆中消失 有没有更有效的方法 >>> theListOfChars = ['a', 'b', 'x', 'd', 's']

数据:

list = ['a','b','x','d','s']
我想创建一个字符串str=“abxds”。我该怎么做

现在我正在做一些类似的事情:

str = ""
for i in list:
    str = str + i
print(str)
我知道字符串在Python中是不可变的,这将创建7字符串对象。当我做上千次的时候,这些都会从我的记忆中消失

有没有更有效的方法

>>> theListOfChars = ['a', 'b', 'x', 'd', 's']
>>> ''.join(theListOfChars)
'abxds'
顺便说一句,不要使用
list
str
作为变量名,因为它们已经是内置函数的名称了


(另外,Python中没有
char
。“character”只是长度为1的字符串。因此
'.join
方法也适用于字符串列表。)

您要查找的是
str.join()


(不要给变量命名
list
,它是一个内置名称。)

KennyTM的答案很好。另外,如果您想让它们以逗号分隔或其他方式,应该是:

",".join(characterlist)

这将导致“a、b、x、d、s”

您应该避免使用“list”作为列表的名称,因为list是一个内置的(与“str”相同)
str
对象在Python中是不可变的,这就是为什么它会为每个连接操作创建一个新的
str
对象的原因,弦是immutable@Naoh:我将不使用列表或strIs这是最有效的方法吗?速度差:无连接:1.01871395111连接:0.609759092331对不起,无法理解您的意思。你的意思是说我可以在其中嵌入一些其他代码并使其更快?@Ringo:是的,你可以制作一个特定的C接口,但这是一个混乱的过程,不会对
''有太大的好处。join
。你应该做的是使用
.join()
。然后,如果您的代码仍然不够快,请分析它。如果<代码> .Cube()/代码>原来是瓶颈,那么考虑编写一个C模块来替换它。如果可以假设列表的内容是单个ASCII字符,那么C版本的速度可能确实比
.join()快得多。
",".join(characterlist)