リストとリスト内包表記
リスト内包表記を用いれば、シンプルな記載となり、行数も削減できる!
# リスト list = [] #空のリスト作成 for i in range(10): list.append(i) #appendで空のリストに追加 print(list)
# リスト内包表記 list = [i for i in range(10)] print(list)
何れも出力結果は以下のようになる。
#出力結果 list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
それでは2次元リストの場合はどのようになるだろうか?
# 2次元リスト vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(vector[0]) # 出力 [1, 2, 3]
最初のリスト[1, 2, 3]が取り出された!
それでは、さらに詳細に指定したらどのようになるだろうか?
# 2次元リスト vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(vector[0][1]) # 出力 [2]
最初のリストの2番目[2]が取り出された!
それではリスト内包表記であったらはどのようになるだろうか?
# 2次元リスト vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] first = [v[0] for v in vector] print(first)
# 出力 [1, 4, 7]
各リストの最初の数字が取りさだれた!
# 2次元リストとリスト内包表記 vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] first = [v[1] for v in vector] print(first)
# 出力 [2, 5, 8]
各リストの2番目の数字が取りさだれた!
この違い、最初は良く分からなかった・・・
# 2次元リストとリスト内包表記 vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new = [v[1:] for v in vector[:] print(new)
各リストの2番目以降[1:] が取り出される。
# 出力 [2, 3], [5, 6], [8,9]
この場合はどのようになるだろうか?
# 2次元リストとリスト内包表記 vector = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new = [v[1:] for v in vector[:-1] print(new)
各リストの2番目以降[1:]と、リストの最後以外[:-1] が取り出される。
# 出力 [2, 3], [5, 6]