【Python】2次元リストから値を検索する方法

この記事では、Pythonで2次元リストから特定の値を検索する方法について解説します。

ループやリスト内包表記、NumPyを使用した方法を紹介するので、初心者の方でも簡単に理解できる内容です。

目次から探す

2次元リストから値を検索する方法

2次元リストは、リストの要素がさらにリストで構成されているデータ構造です。

Pythonでは、2次元リストから特定の値を検索する方法がいくつかあります。

以下では、ループを使用した方法、リスト内包表記を使用した方法、そしてNumPyを使用した方法について解説します。

ループを使用した方法

2次元リストから値を検索するためには、ループを使用してリストの要素を1つずつ比較する方法があります。

以下のサンプルコードでは、2次元リストmatrixから値targetを検索する例を示します。

def search_value(matrix, target):
    for row in matrix:
        for value in row:
            if value == target:
                return True
    return False

# 2次元リストの例
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target = 5

# 値を検索する
result = search_value(matrix, target)

if result:
    print("値が見つかりました")
else:
    print("値が見つかりませんでした")

この方法では、2重のループを使用して全ての要素を比較するため、効率はあまり良くありません。

しかし、基本的な方法であり、理解しやすい特徴があります。

リスト内包表記を使用した方法

Pythonのリスト内包表記を使用すると、1行で2次元リストから値を検索することができます。

以下のサンプルコードでは、リスト内包表記を使用して2次元リストmatrixから値targetを検索する例を示します。

# 2次元リストの例
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target = 5

# 値を検索する
result = any(target in row for row in matrix)

if result:
    print("値が見つかりました")
else:
    print("値が見つかりませんでした")

この方法では、リスト内包表記を使用して、各行の要素に対して値を検索しています。

any()関数を使用することで、1つでも値が見つかればTrueを返します。

NumPyを使用した方法

NumPyは、Pythonの数値計算ライブラリであり、多次元配列を効率的に操作するための機能を提供しています。

NumPyを使用すると、2次元リストから値を検索することも可能です。

以下のサンプルコードでは、NumPyを使用して2次元リストmatrixから値targetを検索する例を示します。

import numpy as np

# 2次元リストの例
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target = 5

# NumPyの配列に変換する
arr = np.array(matrix)

# 値を検索する
result = np.any(arr == target)

if result:
    print("値が見つかりました")
else:
    print("値が見つかりませんでした")

この方法では、NumPyのarray()関数を使用して2次元リストをNumPyの配列に変換し、==演算子を使用して値を比較しています。

np.any()関数を使用することで、1つでも値が見つかればTrueを返します。

以上が、Pythonで2次元リストから値を検索する方法のいくつかです。

適切な方法を選択し、自分のプログラムに組み込んでみてください。

目次から探す