Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
  12. 演習問題
  13. 雑多な情報

Python の基礎

リストの内包表記

内包表記

Python ではリストや辞書の各要素に対して同じ処理を実行して新たなリストを生成するときに,for ループを書く代わりに内包表記を使うことができる.たとえば,values リストの各要素を3倍して新たな results リストを生成する処理を for ループを使って記述すると次のようになる.

# リストを3倍する
values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
results = []
for v in values:
    results.append(v * 3)
print(results)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

上の処理をリストの内包表記を使うと,次のように記述することができる.

# リストを3倍する内包表記
values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
results = [v * 3 for v in values]
print(results)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

さらに,奇数だけ取り出して3倍するには,次のように書くと良い.

# 奇数だけを3倍する内包表記
values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
results = [v * 3 for v in values if v % 2 == 1]
print(results)
[3, 9, 15, 21, 27]

上のような内包表記を使う利点のひとつは,プログラムが短くなり読みやすくなること,もうひとつは,内包表記を使うことで処理速度が向上することである.実際に速くなるかどうかは,各自で試してみよう.ここで NumPy との比較も行っていますが,NumPy の方がさらに高速です

目次に戻る