我是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()之间有什么区别?
我是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()之间有什么区别?
str
是一类。 str()
调用该类的构造函数并返回该类的一个实例。
您通常希望这样的事情呢:
", ".join(...)
我想str().join(...)
是"".join(...)
等同,但后者更清楚大多数Python开发者。
+1。有人可能想补充一点,classmethod'str.join'另外将分隔符字符串作为第一个参数,然后将列表作为第二个参数。这就是TypeError的来源。 – Jeronimo
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])
有时候,你可以真正看到'str.join(LST)'如果有留意的是分配给'str'其他地方例如代码'str =“hello”'。这个“有效”但几乎总是一个错误。另请参阅[为什么可以在Python中为内置函数赋值](https://stackoverflow.com/a/31865529/8379597) – jq170727