1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonの内包表記でコードをシンプルに

Posted at

Pythonを使っていると、リストを操作するコードをよく書きますよね。そんなとき、「内包表記」というテクニックを使うと、コードが短く、読みやすくなります。

内包表記って何?

内包表記は、リストを作る処理を1行で書けるPythonの便利な機能です。たとえば、1から5までの数を2倍にしたリストを作りたい場合、普通のforループだとこんな感じになります:

numbers = []
for i in range(1, 6):
    numbers.append(i * 2)
print(numbers)  # [2, 4, 6, 8, 10]

でも、内包表記を使えばこうなります:

numbers = [i * 2 for i in range(1, 6)]
print(numbers)  # [2, 4, 6, 8, 10]

同じ結果なのに、1行で済むんです!シンプルでしょ?

基本の形

内包表記の基本は [式 for 変数 in イテラブル if 条件] です。

  • 式:各要素にどんな操作をするか(ここでは i * 2)
  • 変数:ループで使う変数(ここでは i)
  • イテラブル:繰り返し可能なオブジェクト(ここでは range(1, 6))
  • 条件を加えてみよう
    「特定の条件を満たす要素だけ取り出したい」というときも、内包表記は強い味方です。たとえば、1から5までの数で偶数だけ2倍にしたい場合:
even_doubled = [i * 2 for i in range(1, 6) if i % 2 == 0]
print(even_doubled)  # [4, 8]

if を後ろにつけると、条件に合うものだけがリストに入ります。

どんなときに使う?

内包表記は、リストを作るシンプルな処理にピッタリです。ただし、長すぎたり複雑すぎたりすると逆に読みづらくなるので要注意。こんなケースで活躍します:

  • リストの要素を一括で変換したい(例:全部大文字にするとか、2倍にするとか)
  • 簡単なフィルタリングをしたい(例:偶数だけ抜き出す)

注意点

読みやすさ優先:無理やり1行に詰め込むより、forループの方が分かりやすい場合もあります。
副作用は避ける:内包表記はリストを作るためのものなので、printとか別の処理を混ぜるのはNG。
まとめ
内包表記はPythonらしい「シンプルで効率的」なコードを書くための鍵。慣れると手放せなくなりますよ。たとえば、こんな風に文字列のリストを操作することも:

words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]
print(upper_words)  # ['APPLE', 'BANANA', 'CHERRY']

ぜひ普段のコードで試してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?