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

Pythonのリスト内検索:初心者向けガイド

Pythonリストでアイテムをどのように見つけますか?これは、すべてのPythonコーダーがある時点で遭遇する問題です。幸い、この言語には、inを使用するなど、リスト内のアイテムを見つけるためのさまざまな方法が用意されています。 演算子または線形探索。

このガイドでは、リスト内のアイテムを見つける4つの方法について説明します。これらの各方法の例を見ていき、それらがどのように機能するかを学ぶことができます。

「in」を使用したPythonのリスト内検索

Pythonには、inという特別な演算子があります 。この演算子は、値がリストにあるかどうかを確認します。この演算子は、値がリストのメンバーであるかどうかをチェックするため、「メンバーシップ演算子」と呼ばれることもあります。

この例では、靴屋を経営しており、特定の靴の在庫があるかどうかを確認します。これを行う1つの方法は、inを使用することです。 オペレーター。

靴のリストを定義することから始めます:

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]

次に、ユーザーに靴を挿入して見つけてもらいます。

to_find = input("What shoe are you looking for? ")

input()ステートメントを使用して、靴の名前を収集します。次に、「if」ステートメントを使用して、ユーザーが入力した靴が靴のリストに含まれているかどうかを確認します。

if to_find in shoes:
	print("{} shoes are in stock.".format(to_find))
else:
	print("{} shoes are not in stock.".format(to_find))

if ユーザーが入力した靴がリストにある場合、ステートメントが実行されます。それ以外の場合は、else ステートメントが実行されます。コードを試してみてください:

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

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

What shoe are you looking for? Adidas Runfalcon
Adidas Runfalcon shoes are in stock.

私たちのコードは、「AdidasRunfalcon」の靴の在庫があることを正常に識別します。これにより、if 実行するステートメント。

線形検索を使用したリスト内のPython検索

線形検索は、リスト内のアイテムを見つける単純な検索アルゴリズムです。線形検索はリストの一方の端から始まり、値をリスト内のすべての要素と比較します。その値がリストにある場合、線形検索はアイテムの位置を返します。

線形探索を実行する関数を作成することから始めます。

def linear_search(array, to_find):
	for i in range(0, len(array)):
		if array[i] == to_find:
			return i
	return -1

このコードでは、「for」ループを使用して、「配列」リスト内のすべての項目を反復処理しています。そのアイテムが見つかった場合、そのアイテムのインデックス位置がメインプログラムに返されます。リスト全体を検索しても項目が見つからない場合は、-1がメインプログラムに返されます。

メインプログラムに移動して、関数を呼び出しましょう。

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]
to_find = input("What shoe are you looking for? ")

found = linear_search(shoes, to_find)

このコードは、ユーザーに探している靴を尋ねます。次に、コードはlinear_search関数を呼び出して、その靴がリストに存在するかどうかを確認します。

最後に、ifを使用します 靴が見つかったかどうかをユーザーに通知するステートメント:

if found != -1:
	print("{} shoes are in stock.".format(to_find))
else:
	print("{} shoes are not in stock.".format(to_find))
>

linear_search関数が-1を返す場合、それはアイテムがリストで見つからなかったことを意味します。 if linear_search関数によって返される値が-1に等しくない場合、ステートメントが実行されます。値が-1に等しい場合、else ステートメントが実行されます。

コードを実行してみてください:

What shoe are you looking for? Adidas Samba
Adidas Samba shoes are not in stock.

コードでAdidasSambaの靴がリストに見つかりません。

index()を使用したリスト内のPython検索

index()組み込み関数を使用すると、リスト内のアイテムのインデックス位置を見つけることができます。 index()を使用して、リスト内の靴の場所を見つけるプログラムを作成します 。

まず、靴のリストを定義します。プログラムが検索する靴を靴のリストに挿入するようにユーザーに依頼します。

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]
to_find = input("What shoe are you looking for? ")

次に、index()を使用します その靴のリストインデックス位置を返すメソッド:

try:
	found = shoes.index(to_find)
	print("{} shoes are in stock. They are at index position {} in the list of shoes.".format(to_find, found))
except:
	print("{} shoes are not in stock.".format(to_find))

index() アイテムがリストに見つからない場合、メソッドはValueErrorを返します。そのため、「try…except」ブロックの一部として使用しています。

靴が見つからない場合は、ValueErrorが発生します。この時点で、「except」ブロックが実行されます。靴が見つかった場合、「try」ブロックは正常に実行されます。

コードを実行します:

What shoe are you looking for? Adidas Gazelle
Adidas Gazelle shoes are in stock. They are at index position 2 in the list of shoes.

私たちのコードは、AdidasGazelleの靴の在庫があることを正常に識別します。私たちのプログラムは、それらの靴が私たちのリストに保存されている位置も教えてくれます。

リスト内包表記を使用したリスト内のPython検索

リスト内包表記を使用して、特定の条件を満たすリスト内の複数のアイテムを見つけます。

靴のリストがあり、Adidasというブランドの靴のみを返品したいと考えています。リスト内包表記を使用してこれを行うことができます。靴のリストを定義することから始めます。

shoes = ["Nike PG 4", "Adidas Ultraboost", "Adidas Gazelle", "Nike Air Max Verona"]

次に、「ナイキ」という単語を含むすべての靴を取得するリスト内包表記を作成します。リスト内包表記は、forループに似た構文を使用します。

nike_shoes = [shoe for shoe in shoes if "Nike" in shoe]
print(nike_shoes)

リスト式は、「靴」リスト内のすべての靴を繰り返し処理します。この式は、ナイキという単語が各靴の名前に含まれているかどうかを確認します。そうである場合、その靴は「nike_shoes」リストに追加されます。そうでなければ、何も起こりません。

コードを実行してみましょう:

['Nike PG 4', 'Nike Air Max Verona']

私たちのコードはナイキの靴のリストを返します。

結論

リスト内のアイテムを見つける方法はたくさんあります。最も一般的な方法は次のとおりです。

  • inの使用 メンバーシップオペレーター
  • 線形検索の使用
  • index()の使用 メソッド
  • リスト内包表記の使用

これで、エキスパートコーダーのようなPythonリストでアイテムを検索する準備が整いました!


  1. Python-リスト内の値のインデックスを見つける方法

    通常、特定の値が配置されているインデックスを見つける必要があります。 index()などを使用して、これを実現する方法はたくさんあります。ただし、リストに複数のオカレンスがある場合は、特定の値のすべてのインデックスを検索する必要がある場合があります。 例 # using filter() # initializing list test_list = [1, 3, 4, 3, 6, 7] # printing initial list print ("Original list : " + str(test_list)) # using filter() # to find

  2. Pythonでリストの平均を見つけますか?

    Pythonは、n個の要素を計算するためのsum関数を提供します。ここでは、この関数を使用して平均を計算します。 アルゴリズム Step 1: input “size of the list” Step 2: input “Element” Step 3: using sum function calculate summation of all numbers. Step 4: calculate average. サンプルコード # Average of a list A=list() n=int(input(Enter the size of the List ::)) print