Python でリスト内包表記を使用する方法
Python でリスト内包表記を使用する方法を学びます。簡潔なループを作成し、条件付きフィルターを適用し、クリーンなビジュアル構文で行列を構築します。
概要
リスト内包表記は、Python の最も人気のある象徴的な機能の 1 つです。既存の反復可能オブジェクト (リスト、範囲、タプルなど) から新しいリストを作成するための、簡潔で表現力豊かで読みやすい構文を提供します。これにより、複数行の「for」ループとリストの初期化ステートメントを 1 行のコードに置き換えることができます。
リスト内包表記の基本構文は `[反復可能な項目の式]` です。内部では、この構文は Python の実装で高度に最適化されており、`.append()` を使用して項目を追加する標準の `for` ループよりも高速に実行されます。数学的変換を適用したり、要素を変更したりするのに最適です。
リスト内包表記は、「if」句を使用した条件付きフィルタリングもサポートしており、要素を選択的に含めることができます (例: 「[x for x in data if x % 2 == 0]」)。リスト内包表記は非常に強力ですが、慎重に使用する必要があります。内包表記が非常に複雑であるか入れ子になっている場合は、読みやすさを維持するために標準ループを作成することをお勧めします。
コードと実行の出力
このスクリプトは、基本的なリストの理解、条件によるフィルター処理、文字列値の変換を示します。
# 1. Traditional for-loop way to build a list
squares_loop = []
for x in range(1, 6):
squares_loop.append(x**2)
print("Loop squares:", squares_loop)
# 2. List comprehension way (same outcome)
squares_comp = [x**2 for x in range(1, 6)]
print("Comp squares:", squares_comp)
# 3. Filtering elements with an 'if' clause (even numbers only)
evens = [n for n in range(1, 11) if n % 2 == 0]
print("Even numbers:", evens)
# 4. String modifications using comprehensions
names = ["alice", "bob", "charlie"]
caps = [name.capitalize() for name in names]
print("Capitalized:", caps)Loop squares: [1, 4, 9, 16, 25]
Comp squares: [1, 4, 9, 16, 25]
Even numbers: [2, 4, 6, 8, 10]
Capitalized: ['Alice', 'Bob', 'Charlie']段階的な実装
- リスト内でキャプチャするループ本体と式を特定します。
- 内包表記を [反復可能な項目の式] として構造化します。
- 要素を動的にフィルターするには、オプションの if 条件を最後に追加します。
よくある質問
リスト内包表記内で if-else ステートメントを使用できますか?
はい! for ループの前に if-else 句を配置します: [x if x > 0 else 0 for x in data]。
リスト内包表記とジェネレーター式の違いは何ですか?
リスト内包表記では角括弧を使用し、完全なリストを即座に返します。ジェネレーター式はかっこを使用し、遅延ジェネレーター オブジェクトを返します。これにより、大規模なデータセットのメモリが節約されます。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python リスト
Python リストについてすべて学びましょう。 Python で配列をネイティブに作成、スライス、変更、反復処理する方法を学びます。
Python リスト メソッドのチートシート
Python のリスト操作のクイック リファレンス ガイド。要素の追加、挿入、削除、並べ替え、スライスをマスターします。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。