40のおっさんのPython学習記録

20年以上前、学部の必修のC言語が全く理解できずに同級生に放り投げ、その後コーディングから遠ざかったガチ文系のおっさんが、ふと思い立ってPythonに挑戦しています。

新たな気づき(Chapter 7)

  • タプルの要素が1つのときは2つ目以降の要素がないとしても(a,)とカンマをつける。
  • tuple(range(-5,5))で-5から5までの整数のタプルができる。
  • tuple("日月火水木金土")で曜日1文字づつにばらけて7つの要素を含むタプルができる。
  • tuple(list_a)でリストをタプルに変換できる。
  • 逆にlist(tuple_a)でタプルをリストに変換できる。
  • ==は値が同じかどうかを調べ、isはオブジェクトが同じかどうかを調べる。なのでa=(1,2,3)とa=bとc=(1,2,3)を比較する場合、a==b、a==cはTrueだけど、a is bはTrueだけど、aとcは値が同じでも違うオブジェクトなのでa is cはFalseになる。
  • zipで複数オブジェクトをつないでリスト化すると、各リストの要素を順番にタプルにしたもののリストが帰ってくる。
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> z=[7,8,9]
>>> xyz=list(zip(x,y,z))
>>> print(xyz)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
  • アンパック代入という言葉がある。下の事例のようにタプルdataに要素が入っており、変数a,b,cに対してdataに入っている各要素をばらして(アンパックして)代入することが可能。登園a,b,c,d=dataだったり、a,b=dataだったりするとタプル内の要素数と合わないのでエラーになる。
>>> data=(108,76,98)
>>> a,b,c=data
>>> a
108
>>> b
76
>>> c
98