「リストのリスト」は,例えば次のように書くことができます.
a = [[1, 2], [3, 4], [5, 6]]
このリストの全体はprint(a)で,一部は例えばprint(a[0])やprint(a[0][0])で,出力できます.
代入の文は,次のように書くこともできます.
a = [[1, 2], [3, 4], [5, 6]]
a = [ [1, 2], [3, 4], [5, 6] ]
次のように書いたほうが,見やすいんじゃないかと,思った人はいませんか?
a = [[1, 2], [3, 4], [5, 6]]
たしかに見やすくなりますが,このように2行目以降をインデント(字下げ)しようと思うと,行のはじめに自分で空白を打ち込む(手作業でインデントする)必要が生じます.
リストのリストを複数行で書くときの,書きやすく読みやすいルールは,次の通りです.
- 外側のリストの開始となる「[」の直後で,改行します.
- 内側のリストでは字下げを行い,字下げの文字数を同じにします.
- 外側のリストの終了の「]」は,文(1個の処理)の最初の文字と,字下げの文字数を同じにします.
このルールを満たしているのは,以下のコードです.
a = [ [1, 2], [3, 4], [5, 6] ]
ルールの3番目についても,「a」と,最後の「]」が,ともに字下げなし(字下げの文字数は0で同じ)ですので,満たしています.
ちなみに,複数の行で,字下げの文字数を同じにすることを,「インデントを揃える」と言います.
こういったインデントは,プログラムを読んだり書いたりする「人」のためのルールです(ただしPythonでは「:」のあとのように,文法上,必要なインデントもあります).ルールに従っていなかったり,連続する行が不揃いになっていたりしても,この科目では,課題の条件の通りに動作すれば正解にします.
「なるほど」と思ったら,この投稿に「高く評価」をつけてください.
ここまでを授業のTeamsに投稿したのですが,Google Colabではきれいにインデントしてくれなかったのでした.Enterキーを入れるのみで,手作業でのインデントをしなければ,例えば次のような表示になります.
a = [ [1, 2], [3, 4], [5, 6]]
paiza.IOのPython3で,a = [[1, 2], [3, 4], [5, 6]]を書いてから,改行を入れると,次のようになりました.
a = [ [1, 2], [3, 4], [5, 6] ]
オンライン実行環境以外では,EmacsのPythonモードで,改行を入れると,次のようになってくれました.上の「次のように書いたほうが,見やすいんじゃないか」に,合致しました.
a = [[1, 2], [3, 4], [5, 6]]
Visual Studio Codeでは,こうなりました.
a = [ [1, 2], [3, 4], [5, 6] ]