やりたいこと
- (1, 2)に3という要素を追加して、(1, 2, 3)にしたい
どうやる?
配列に要素を追加していくような気持ちで、
ついつい誤った直観で下記のように書いてしまう
a = (1, 2)
b = 3
# として、
# (1, 2, 3)にしたくて
# 下記のように書いてしまう
c = (a, b)
print(c)
> ((1, 2), 3)
# tupleの入れ子になってしまった
Pythonの気持ち
「tupleとスカラーを括弧()でタプってるので、こう返した」
直観を修正する
- tupleとtupleにして、連結すればよい
a = (1, 2)
b = (3,) #末尾のカンマが大事。これがないとtupleにならない。
# として、
c = a + b
> (1, 2, 3)
# できた
おわりに
Pythonのいちいち型宣言をしなくて済むところは、コードがすっきりして好き。
型はメモリ側実装の話でアルゴリズムの本筋ではないので。
しかし、やっぱり型でつまづくなぁという印象。
if hogehoge == '1':
を あれー?たしかに、
hogehoge = 1
なのになぁ??ってつまづいたりする。