条件の追加
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 52/78。
リスト内包表記は、条件ロジックを追加することでさらに強力になります。これにより、指定された条件に基づいて要素をフィルタリングおよび変換しながら、既存のリストに基づいて新しいリストを作成することができます。
リスト内包表記に条件を追加するための構文は次のとおりです:
new_list = [expression for item in iterable if condition]構文の内訳は以下の通りです:
new_list: 新しく作成されるリスト。
expression:new_listに含まれる値です。これはitemを変更したものである場合もあります。
for item in iterable:iterable(例:リスト、タプル、または range)内の各要素を反復処理するループです。
item: ループ内で現在処理されている要素。
if condition: 現在のitemをnew_listに含めるかどうかを決定するフィルタです。expressionは、conditionがTrueの場合にのみ評価されます。
以下に例を示します:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# 出力: [2, 4, 6]この例では、リスト内包表記は numbers リストから各要素 n を取り出し、それが偶数(つまり n % 2 == 0)である場合にのみ含めることで、evens という名前の新しいリストを作成します。
チャレンジ
簡単数値のリストnumbersを引数として受け取る、filter_and_squareという名前の関数を作成してください。この関数は、リスト内包表記を使用して、元のリストに含まれる正の数のみを2乗した新しいリストを作成する必要があります。関数はその新しいリストを返すようにしてください。
チートシート
条件付きロジックを使用したリスト内包表記を使用すると、指定された条件に基づいて要素をフィルタリングおよび変換できます。
new_list = [expression for item in iterable if condition]expression: 新しいリストに含まれる値for item in iterable: 各要素をループしますif condition: アイテムを含めるかどうかを決定するフィルター
例 - 偶数のフィルタリング:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# 出力: [2, 4, 6]自分で試してみよう
def filter_and_square(numbers):
# ここにコードを記述してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。