Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonリスト内包表記:ハウツーガイド

Pythonリスト内包表記は、既存のリストに基づいてリストを作成する方法です。リスト内包表記は通常、リストからアイテムを除外したり、既存のリストの値を変更したりするために使用されます。リスト内包表記は角かっこで囲まれています。

リストを操作するときは、既存のシーケンスの内容に基づいてリストを作成することをお勧めします。たとえば、文字のシーケンスに基づいてリストを作成したい場合があります。または、別のリストの内容を2倍にするリストが必要な場合もあります。

そこで、リスト内包表記が役立ちます。このチュートリアルでは、例を挙げて、Pythonリストの基本と、リスト内包表記の使用方法について説明します。

Pythonリスト:復習

リストデータ構造を使用すると、アイテムのコレクションをPythonに保存できます。リストは、何らかの方法で関連する複数の値を操作する場合によく使用されます。

たとえば、リストを使用して、アイスクリーム店で販売されているアイスクリームのすべてのフレーバーを保存できます。または、リストを使用して、ワインクラブのメンバーの電話番号のリストを保存することもできます。

Pythonのリストの例を次に示します。

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

リストの基本を改訂したので、リスト内包表記の使用方法について話し始めることができます。

Pythonリスト内包表記

Pythonリスト内包表記は、別のリストの内容から新しいリストを作成します。リスト内包表記を使用して、リストを複製したり、既存のリストの内容を新しいリストに変更したりできます。または、別の反復可能ファイルの内容をリスト内包表記のリストに転送することもできます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

新しいリストに特定の値のみが含まれるようにフィルターを指定できます。たとえば、番号のリストから新しいリストを作成できます。新しいリストには、250を超える数のみを含めることができます。

Pythonでのリスト内包表記の構文は次のとおりです。

[expression for item in list]

この構文は、Pythonの forに似ています。 声明。しかし、ステートメントは1行にあります。 forステートメントを区別するために、リスト内包表記は角かっこで囲まれています。

上記の構文には3つの部分があります:

  • 表現 :新しいリストに入る最終値。
  • アイテム :反復するリスト内の個々のアイテム。
  • リスト :リスト内包表記が通過するリストまたは反復可能なオブジェクト(許容されるデータ型には、タプル、文字列、およびリストが含まれます)。

Pythonでリスト内包表記を使用できますif…elseステートメント内:

[expression for item in list if condition else none]

この理解は、指定された条件を満たす場合にのみ、アイテムをリストに追加します。

リスト内包表記を使用すると、完全な for を定義しなくても、既存のリストから新しいリストを作成できます。 ステートメント。 for ステートメントは少なくとも2行のコードを使用しますが、リスト内包表記は1行で記述できます。

リスト内包表記はよりPythonicなコードであると言う人もいます。これは、短い forを使用するよりも効率的であるためです。 ステートメント。

Pythonリスト内包表記の例

私たちが店で販売しているすべてのチキンピザのリストを作成したいとします。すべてのチキンピザをチキンに移動します メニューのカテゴリ。そのために、 forを使用してピザをフィルタリングできます。 ステートメント。または、リスト内包表記を使用してリストをフィルタリングすることもできます。

リスト内包表記を使用して、名前に Chickenが含まれるピザの新しいリストを生成できます。 既存のピザのリストに基づいています。このコードを使用してこれを行うことができます:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

chicken_pizzas = [p for p in pizzas if "Chicken" in p]
print(chicken_pizzas)

私たちの理解は、次の出力リストを返します:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

このコードでは、最初にメニューにピザのリストを定義します。私たちのピザは、 pizzasというPython変数に保存されます。 。次に、リスト内包表記を使用して、名前にチキンが含まれるピザの新しいリストを作成します。

リスト内包表記は、次の部分で構成されています。

  • p :これは、リストに追加する値です。
  • ピザのpの場合 :これは、「ピザ」リスト内のすべてのピザをループします。
  • pの「チキン」の場合 :これは、各ピザに「チキン」が含まれているかどうかを確認します。これがTrueと評価された場合、「p」に格納されている値がリストに追加されます。

私たちのリスト内包表記は、1行のコードしか使用しませんでした。次の例では、 forを含む3行のコードを使用する必要があります。 それを機能させるためのステートメント。次の例は、リスト内包表記がよりクリーンなコードの記述にどの程度役立つかを示しています。

リスト内包表記なし

チキンピザの例に戻りましょう。リスト内包表記を使用せずに、メニューにチキンピザのリストを生成する場合は、次のコードを使用します。

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
chicken_pizzas = []

for pizza in pizzas:
	if "Chicken" in pizza:
		chicken_pizzas.append(pizza)

print(chicken_pizzas)

コードは次のようになります:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

まず、2つのリストを定義します。 1つのリストには、当店で販売されているピザのリストが格納されています。もう1つのリストには、販売しているすべてのチキンピザのリストが格納されています。私たちが販売するチキンピザのリストは最初は空です。

「for」ステートメントを使用して、ピザのリスト内の各ピザを調べます。次に、各ピザにチキンという単語が含まれているかどうかを確認します。 ピザにチキンという単語が含まれている場合 、そのピザをチキンピザのリストに追加します。この場合、3つのピザには鶏肉が含まれています 、およびこれら3つのピザすべてが chicken_pizzasに追加されます。 リスト。

ご覧のとおり、ピザにチキンが含まれているかどうかを確認します リストに追加するには、3行のコードを使用します。このコードを書くためのより効率的な方法があります:リスト内包表記を使用します。

if…elseを使用したリスト内包表記

if…elseを使用することもできます リスト内包表記を含むステートメント。

以前は、 ifを使用していました チキンピザのリストにピザを追加するステートメント。ピザの名前にChickenという用語が含まれている場合にのみ、ピザを追加しました 。しかし、どのピザが菜食主義者であるかのリストを作成していると仮定します。

ピザの名前に鶏肉が含まれている場合は、リストに「肉」を追加します とベジタリアン ピザの名前にチキンが含まれていない場合 。

これは、リスト内包表記を使用して行うことができます:

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas]

print(is_veggie)

コードは次のようになります:

[‘Meat’, ‘Vegetarian’, ‘Meat’, ‘Vegetarian’, ‘Vegetarian’, ‘Meat’]

コードを分解してみましょう。まず、ピザと呼ばれるピザのリストを宣言します。 。次に、リスト内包表記を使用して、ピザの名前にチキンが含まれているかどうかを評価します。 かどうか。

ピザの名前にチキンが含まれている場合 、値 is_veggieに追加されます リスト。それ以外の場合、値 Vegetarian 追加されます。

ご覧のとおり、 is_veggieの最初の値は リストはです 、ピザの対応する値のため リストはチキンです 。しかし、次の価値はベジタリアンです 、ピザの対応する値のため リストはマルゲリータです 、チキンは含まれていません 。



結論

リスト内包表記を使用すると、既存のリストに基づいて新しいリストを作成できます。リスト内包表記を使用すると、リストのコピーを作成したり、古いリストから値を除外する新しいリストを作成したりできます。

このチュートリアルでは、例を参照して、Pythonリストの基本と、リスト内包法を使用して新しいリストを作成する方法について説明しました。

Pythonでのコーディングについてもっと知りたいですか? Pythonの学習方法ガイドをご覧ください。このガイドには、Pythonの習得に向けた旅を続けるのに役立つ学習リソースのリストが含まれています。


  1. Python Switchステートメント:ハウツーガイド

    JavaやC#とは異なり、Pythonには組み込みのswitchステートメントがありません。つまり、「switch…case」ステートメントを模倣する独自のコードを記述せずに、switch式を評価することはできません。 このガイドでは、Pythonで「switch…case」を作成する方法について説明し、コードで1つを作成する方法を学習できるようにfaux-switchステートメントの2つの例を説明します。 Switchステートメント:復習 switchステートメントを使用すると、実行するコードブロックのセットの1つを選択できます。これらは、プログラム内の複数の式を評価する方法です。

  2. Python Hello World:ハウツーガイド

    Pythonの「HelloWorld」プログラムは通常、コーダーがPythonで作成する最初のプログラムです。このプログラムは、printステートメントを使用してPythonコンソールに文字列を表示します。プログラムは次のようになります:print(“ Hello World”)。 Pythonバージョンが機能することを確認するために作成できる最初のプログラムの1つは、「HelloWorld」です。プログラムを作成するには、ターミナルまたは選択したコードエディター(Visual Studio Code、Vimなど)の2つの方法があります。 開始するには、マシンにPython3がインストー