我是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