Pythonのリストから要素を抽出するさまざまな方法を学んでみましょう Pythonで1つの変数に複数の項目を格納する必要がある場合、リストを使用する必要があります。
これはPythonの組み込みデータ関数の1つです。
変数の初期化時に[ ]括弧を使用して作成されます。
この記事では、リストを作成するさまざまな方法と、Pythonのリストから要素を抽出するさまざまな方法について説明します。
この記事もチェック:Pythonのsample関数を使ってリストからランダムに要素を抽出する方法
1. Pythonのリストからインデックスを使って要素を抽出する
この最初の例では、6つの要素を持つ’firstgrid’という名前のリストを作成しました。
print文はindexにある’1’の要素を表示します。
firstgrid=["A","B","C","D","E","F"]
print(firstgrid[1])
|
Output: 'B' |
この記事もチェック:Pythonのリストの最初と最後の要素を取得する方法を解説する
2. Enumerateを使ったリストからの項目表示
ここでは、’vara’という名前の変数を作成し、リストに要素を埋め込んだ。
そして、’varx’変数を使って、’1,2,5’のインデックス位置を検索するenumerate関数を指定している。
vara=["10","11","12","13","14","15"]
print([varx[1] for varx in enumerate(vara) if varx[0] in [1,2,5]])
|
Output: ['11', '12', '15'] |
3. ループを使ったリスト要素の抽出
Pythonのリストから要素を抽出するには、ループを使用することもできます。
ループを使ってリストから個々の要素を取り出す3つの方法を見てみましょう。
方法1:
直接ループを使って、指定したインデックスを検索します。
vara=["10","11","12","13","14","15"]
print([vara[i] for i in (1,2,5)])
|
Output: ['11', '12', '15'] |
方法 2:
リストとインデックスの位置を2つの変数に格納し、そのインデックスの位置を検索するループを実行します。
elements = [10, 11, 12, 13, 14, 15]
indices = (1,1,2,1,5)
result_list = [elements[i] for i in indices]
print(result_list)
|
Output: [11, 11, 12, 11, 15] |
方法3:
この例では、リストを作成するために別の方法を使用しました。
range 関数は、10 から 15 までの 6 つの要素を持つ、連続した数字を含むリストを作成します。
numbers = range(10, 16)
indices = (1, 1, 2, 1, 5)
result = [numbers[i] for i in indices]
print(result)
|
Output: [12, 11, 11, 14, 15] |
4. Numpyを使ってリストから項目を表示する
Pythonのリストから要素を抽出するために、人気のあるNumPyライブラリを使用することもできます。
ここでは、2つの異なる方法を使って、どのようにそれを行うことができるか見てみましょう。
方法1:
ここでは、np.array ライブラリ関数を使用して、リスト ‘ax’ に存在する要素から変数 ‘sx’ に指定されたインデックスを表示するために、numpy インポート関数を使用しました。
ax = [10, 11, 12, 13, 14, 15];
sx = [1, 2, 5] ;
import numpy as np
print(list(np.array(ax)[sx]))
|
Output: [11, 12, 15] |
方法 2:
この例では、インデックス位置を格納する変数と、配列内の数値を格納する別の変数を使用します。
print文は、変数’sx’に格納されたインデックス位置を、リストを格納した変数’ay’に対して表示します。
sx = [1, 2, 5];
ay = np.array([10, 11, 12, 13, 14, 15])
print(ay[sx])
|
Output: [11 12 15] |
5. index関数による要素の抽出
index関数は、括弧で囲まれたインデックスを検索するようにプログラムを指定し、インデックスが存在するかどうかをチェックするループを実行します。
0 <= index < len(vara)」という記述は、0から「len(vara)」で指定された最後のインデックスまでのインデックス位置のみを検索するようにコンパイラに指示している。
このため、プログラムでは4つのインデックスを検索するように指示されているにもかかわらず、出力には3つの要素しか表示されません。
このループでは、指定された範囲外のインデックス位置はすべて破棄されます。
vara=["10","11","12","13","14","15"]
print([vara[index] for index in (1,2,5,20) if 0 <= index < len(vara)])
|
Output: ['13', '12', '14'] |
まとめ
この記事では、pythonのリストから要素を検索して抽出するために利用できるさまざまな方法について詳しく説明しました。
この記事では、リストがどのように作られるのか、リストから要素を抽出するためのさまざまなタイプの Python 関数について学びました。
この記事があなたのお役に立てれば幸いです。