joinとsplit.py
[Python]
Pythonでは、splitは文字列のメソッドである。そしてjoinも。
joinの場合、連結の区切り文字列に対して呼び出す。
s2a = "a,b,c,d,e,f".split(",") a2s = ",".join(s2a)
splitは文字列に対してしか呼び出せないので特に問題はない。
注意しなければならないのは、joinも文字列に対する操作である、ということである。
>>> ",".join([1, 2, 3, 4, 5]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sequence item 0: expected string, int found
文字列でないものはjoin連結できないから。
シーケンス・オブジェクトの中に、ひとつでも文字列でないものがあると、TypeErrorが投げられる。
しかし、文字列として連結して表示したいではないか。
そのときはリスト内包表記を使って、シーケンスの全要素を文字列に変換する。
int_array = [1, 2, 3, 4, 5] print ",".join([str(item) for item in int_array])