0
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?

More than 1 year has passed since last update.

はじめに

こんにちは!
今回も、備忘録を兼ねて。

プログラミングをしていると、もっと効率的にコードを書きたくなることがあります。

Pythonのリスト内包表記は、そんなときに役に立つテクニックです。
forループを使った処理を、より短く読みやすく記述することができます。

それでは、基本から見ていきましょう。

リスト内包表記の基本

リスト内包表記は、新しいリストを作成 するための簡潔な方法です。
基本的な構文は以下の通りです。

[ for 変数 in イテラブルオブジェクト]
  • 式: 各要素に対して適用する式
  • 変数: イテラブルオブジェクトの各要素を格納する変数
  • イテラブルオブジェクト: リストやタプルなど、要素を順番に取り出せるオブジェクト

簡単な例を見てみましょう。

# 1から10までの数のリストを作成
numbers = [i for i in range(1, 11)]
print(numbers)  # 出力: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 文字列のリストから、各文字列の先頭を大文字にした新しいリストを作成
words = ["apple", "banana", "cherry"]
capitalized_words = [word.capitalize() for word in words]
print(capitalized_words)  # 出力: ['Apple', 'Banana', 'Cherry']

条件式を使ったリスト内包表記

リスト内包表記では、if文を使って要素を抽出したり、条件に応じて処理を分岐させたりすることができます。

条件に合う要素のみを抽出

# 偶数のみを抽出
even_numbers = [i for i in range(1, 11) if i % 2 == 0]
print(even_numbers)  # 出力: [2, 4, 6, 8, 10]

条件に応じて異なる処理を実行

# 偶数なら2倍、奇数なら3倍
numbers = [i * 2 if i % 2 == 0 else i * 3 for i in range(1, 6)]
print(numbers)  # 出力: [3, 4, 9, 8, 15]

ネスト構造を使ったリスト内包表記

リスト内包表記はネストさせることも可能です。
例えば、二次元リストを作成する場合などに便利です。

# 二次元リストを作成
matrix = [[i * j for j in range(1, 4)] for i in range(1, 4)]
print(matrix) 
# 出力: [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

リスト内包表記のメリット

簡潔なコード

forループに比べて、リスト内包表記を使うことでコードを簡潔に書くことができます。

処理の効率性

リスト内包表記は、forループに比べ、処理速度が速い場合があります。

まとめ

今回は、Pythonのリスト内包表記について、基本から解説しました。

リスト内包表記を使いこなすことで、より簡潔で効率的なコードを書くことができます。

みなさんも一緒に頑張りましょう!

0
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
0
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?