2017-09-18 104 views
1

我是Python的新手,我正在使用Python3,我试图将列表项添加到字符串中,我发现当我尝试str().join(lst)时,我成功地将列表项作为字符串获取,但是当我这样做时str.join(lst)得到:Python中的str.join()和str()。join()有什么区别?

TypeError: descriptor 'join' requires a 'str' object but received a 'list'

str和str()之间有什么区别?

+0

有时候,你可以真正看到'str.join(LST)'如果有留意的是分配给'str'其他地方例如代码'str =“hello”'。这个“有效”但几乎总是一个错误。另请参阅[为什么可以在Python中为内置函数赋值](https://stackoverflow.com/a/31865529/8379597) – jq170727

回答

3

str是一类。 str()调用该类的构造函数并返回该类的一个实例。

您通常希望这样的事情呢:

", ".join(...) 

我想str().join(...)"".join(...)等同,但后者更清楚大多数Python开发者。

+0

+1。有人可能想补充一点,classmethod'str.join'另外将分隔符字符串作为第一个参数,然后将列表作为第二个参数。这就是TypeError的来源。 – Jeronimo

0

join(list)str类的一类方法。 str()正在构造str类的对象(空字符串对象),它也有join方法。

str().join(['abc', 'def'])将返回abcdef,它相当于''.join(['abc', 'def'])。什么str()它创建空的字符串对象。

类方法join也可用于生成相同的结果。
您可以使用str.join('', ['abc', 'def'])生成相同的输出。

综上所述,'string'.join([string list])相当于str.join('string', [string list])

相关问题