トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

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])