Python については、いくつかの反対意見があります。まず、任意の iterable を受け入れる文字列メソッドの場合、文字列オブジェクトでメソッドをサポートするだけでよく、join
自動的に iterable で動作します。それ以外の場合、カスタムの反復可能なオブジェクトも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 つの異なる型はすべて、1 つのメソッドで非常に簡単にサポートされます (組み込みの型だけに触れました)。
join
次に、リスト内のすべてがbasestring
タイプである場合にのみ、リストを作成できます。間違った内容のリストで使用すると例外が発生するリストにメソッドを提供するのはばかげているように思えます -- 少なくとも、ここでの API は (私には) ややこしいようです もちろん、list.remove
間違った引数で呼び出された場合に例外が発生する可能性があると主張することもできます。それは本当です -- しかし、一般的には、1 つのアイテムだけを削除するということです。本来よりも低いレベルで動作しますjoin
。もちろん、この議論は私が最初に提案したものよりも弱いので、それが気に入らない場合は、議論 1 に頼ってください。