型の違う配列やTupleをjoinで文字列結合するときの注意
大丈夫だろうと甘く見ていたら怒られたのでメモ
Pythonは型にルーズなので、配列やTupleの中に文字列と数字が混在していても特に問題なし。例えば次のようなTupleは許容される。
a = (1,"a",2)
ところが文字列結合すると途端にうるさくなる。例えばこれですらダメ。
a = (1,"a",2) s = "" for i in a: s += i print(s) # s += i #TypeError: must be str, not int
str(i)とキャストが必要。joinで結合するときはもっと気づきにくいかもしれない。こうする必要がある。
a = (1,"a",2) s = "".join(str(x) for x in a) print(s)
ハマるときはハマるかもしれない。