Python3.6.3チュートリアル写経20171112

5.1.4. ネストしたリストの内包表記~5.4 集合型 をやった。 以下メモ。

  • ネストしたリストの内包表記を書くことができるが読みづらいので、zip関数を使った方がいい
In [1]: matrix = [
   ...:     [1, 2, 3, 4],
   ...:     [5, 6, 7, 8],
   ...:     [9, 10, 11, 12],
   ...: ]

In [3]: [[row[i] for row in matrix] for i in range(4)]
Out[3]: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

In [7]: list(zip(*matrix))
Out[7]: [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

In [12]: [list(elm) for elm in list(zip(*matrix))]
Out[12]: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
  • シーケンス型には、list, tuple, rangeがある
  • シーケンス型と似たものに、テキストシーケンス型、バイナリシーケンス型がある
  • タプルはイミュータブル(そのため、タプルの要素への代入ができない)
  • 集合型というものがある(差集合: -, 和集合: |, 共通部分: &, EXOR: ^)