{category}

Python - リスト内包表記

[expression for item in iterable if condition]

エクスプレッション フォー アイテム イン イテラブル イフ コンディション(リスト操作

意味 条件に合う要素だけ抽出


[expression for item in iterable if condition]とは?

リスト内包表記を使って、既存のリストから条件に合う要素だけを抜き出して新しいリストを作成することができます。

[expression for item in iterable if condition]の具体的な使い方

条件付きリスト内包表記

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 偶数のみを抽出し、2倍にする
even_doubled = [num * 2 for num in numbers if num % 2 == 0]
print("偶数を2倍にしたリスト:", even_doubled)

# 5より大きい奇数を抽出
odd_greater_than_five = [num for num in numbers if num > 5 and num % 2 != 0]
print("5より大きい奇数のリスト:", odd_greater_than_five)

# 文字列のリストから4文字以上の単語を大文字に変換
words = ["cat", "dog", "elephant", "lion", "tiger", "bear"]
long_words_upper = [word.upper() for word in words if len(word) >= 4]
print("4文字以上の単語を大文字にしたリスト:", long_words_upper)

👇出力結果

偶数を2倍にしたリスト: [4, 8, 12, 16, 20]
5より大きい奇数のリスト: [7, 9]
4文字以上の単語を大文字にしたリスト: ['ELEPHANT', 'LION', 'TIGER', 'BEAR']

リスト内包表記を使用すると、既存のリストから条件に合う要素だけを抽出し、必要に応じて加工して新しいリストを作成できます。[expression for item in iterable if condition]の形式で記述します。

ネストしたリスト内包表記

# 2次元リストを作成
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 各要素を2倍にした新しい2次元リストを作成
doubled_matrix = [[num * 2 for num in row] for row in matrix]
print("元の行列:", matrix)
print("2倍にした行列:", doubled_matrix)

# 行列の転置(行と列を入れ替える)
transposed_matrix = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print("転置行列:", transposed_matrix)

👇出力結果

元の行列: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2倍にした行列: [[2, 4, 6], [8, 10, 12], [14, 16, 18]]
転置行列: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

リスト内包表記をネストさせることで、より複雑な操作も簡潔に記述できます。この例では、2次元リストの各要素を変換したり、行列の転置を行っています。

[expression for item in iterable if condition]に関するよくある質問

Q. リスト内包表記と通常のforループの違いは?
A. リスト内包表記はより簡潔で読みやすく、多くの場合パフォーマンスも優れています。ただし、複雑な処理には通常のforループの方が適していることがあります。
Q. 条件部分を省略できますか?
A. はい、条件部分(if節)は省略可能です。例:[x for x in range(10)]は0から9までの数値のリストを作成します。
Q. ネストしたリスト内包表記は可能?
A. はい、複数のforループを使ってネストしたリスト内包表記を作成できます。ただし、可読性が低下する可能性があるので注意が必要です。

[expression for item in iterable if condition]が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonの[expression for item in iterable if condition]やremove、insert、count、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Pythonを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

remove

リストから要素を削除

種類: リスト操作

insert

リストに要素を挿入

種類: リスト操作

count

要素の数を数える

種類: リスト操作

except

エラー発生時の処理

種類: 例外処理

theano

数式表現と計算

種類: ディープラーニング