スポンサーリンク
内包表記でリストを初期化
内包表記でリストを初期化すると、コードもシンプルになりますし楽ですね。
※その他のリストの初期化方法は下記を参考にしてください。
参考:Pythonでリスト(配列)を初期化する方法:入門編
0~5までの数値で初期化するには下記のように書きます。
基本的な書き方になります。
list = [i for i in range(6)]
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 #リストの初期化 list = [i for i in range(6)] print("内包表記でリストを初期化") print (list)
下記が実行結果になります。
$ ./sample.py 内包表記でリストを初期化 [0, 1, 2, 3, 4, 5]
スポンサーリンク
if 条件文で内包表記
条件文を後ろに書いて、リストの中身を条件指定できます。
list = [i for i in range(6) if i % 2 == 0]
下記がサンプルコードになります。
$ cat sample2.py #!/usr/bin/env python3 # coding: UTF-8 list = [i for i in range(6) if i % 2 == 0] print("偶数のみでリストを初期化") print (list)
下記が実行結果になります。
$ ./sample2.py 偶数のみでリストを初期化 [0, 2, 4]
奇数のみ出力。
$ cat sample3.py #!/usr/bin/env python3 # coding: UTF-8 list = [i for i in range(6) if i % 2 != 0] print("奇数のみリストを初期化") print (list)
下記が実行結果になります。
$ ./sample3.py 奇数のみリストを初期化 [1, 3, 5]
if else の条件文で内包表記
if else の条件文で内包表記も書けます。
list = [i if i % 2 == 0 else i * 100 for i in range(6)]
ただし、if文は後ろに付加しましたが、if else の場合は前に付加する必要があります。
ややこしいですね。
下記がサンプルコードになります。
$ cat sample4.py #!/usr/bin/env python3 # coding: UTF-8 #リストの初期化 list = [i if i % 2 == 0 else i * 100 for i in range(6)] print("偶数は100倍してリストを初期化") print (list)
下記が実行結果になります。
$ ./sample4.py 偶数は100倍してリストを初期化 [0, 100, 2, 300, 4, 500]
内包表記の出力を計算
iの値の計算結果をリストに格納することもできます。
下記は100倍しています。
list = [i * 100 for i in range(6) if i % 2 != 0]
下記がサンプルコードになります。
$ cat sample5.py #!/usr/bin/env python3 # coding: UTF-8 list = [i * 100 for i in range(6) if i % 2 != 0] print("奇数のみ、100倍してリストを初期化") print (list)
下記が実行結果になります。
$ ./sample5.py 奇数のみ、100倍してリストを初期化 [100, 300, 500]
内包表記で2次元リスト
内包表記で2次元リストも作れます。
下記がサンプルコードになります。
$ cat sample6.py #!/usr/bin/env python3 # coding: UTF-8 list = [[i for _ in range(6)] for i in range(6)] print("内包表記で2次元リストを初期化") print (list)
下記が実行結果になります。
$ ./sample6.py 内包表記で2次元リストを初期化 [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5]]
スポンサーリンク