2017-09-18 106 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])

相關問題