對於python,有幾個反對它的論點。首先,如果它是一個接受任意迭代的字符串方法,那麼你只需要在字符串對象上支持join
方法,並且它可以自動處理任何可迭代的東西。否則,自定義迭代對象也將需要支持join
方法,等等,等等
考慮:
", ".join(["1","2","3"])
", ".join(("1","2","3"))
", ".join(str(x) for x in xrange(1,4))
", ".join({'1':None,'2':None,'3':None})
", ".join({'1','2','3'}) #set literal syntax -- python2.7+
", ".join("123")
6種不同類型的所有支持非常簡單地通過一個單一的方法(我只觸及到內置類型)。
二,只有join
列表,如果它的一切都是basestring
類型。在列表上提供一個方法似乎很愚蠢,如果你在列表中使用了錯誤的內容,會引發異常 - 至少,這裏的API似乎有點棘手(對我來說)。當然,如果用錯誤的參數調用,你可能會說list.remove
會引發異常。這是真的 - 但一般來說,你只是刪除一個項目。它的運行水平應低於join
。當然,這個論點比我提出的第一個要弱一些,所以如果你不喜歡它,就回到參數1上。
請注意,你的例子*在Python中不起作用。該列表必須僅包含字符串。 – mgilson 2013-04-30 13:43:04
在某種意義上,列表是語言的較低級別(更基本的部分)。所以字符串知道列表,但列表不知道字符串。 – 2013-04-30 13:44:30
我編輯了語法來反映這一點 - 問題是關於整體語義比特定操作更多:) – jackweirdy 2013-04-30 13:44:37