一次元のリストで、特定の要素のインデックスを取得するときにli.index()を使っています。
二次元にしたときに、使えません。
index([*, ])などと指定するはずですが、内側のリストの並びが不明だからです。
例えば "bbb" を検索するときに、[, "bbb"] なのか ["bbb", ] なのかなど、一次元のときの並びがわかりません。
当然、リストの要素数もわかりません。[, ] なのか [, *, *] なのか。
forを使ってインデックスを返す関数を自作すればできないことは無いんですが、他にいい方法とかあったら教えてほしいです。「いい方法」とは既存のライブラリを使う、自作関数でもっと効率よく検索する等。
例えばindex()でワイルドカードを指定する方法など。
Python
1# 二次元リストのインデックス取得関数 2def get_index(li, data): 3 index = [] 4 for i, a in enumerate(li): 5 for j, b in enumerate(a): 6 if data == b: 7 index = [i, j] 8 return index 9 10if __name__ == "__main__": 11 li = [ 12 ["aaa", "bbb", "ccc"], 13 ["ddd", "eee", "fff"], 14 ["ggg", "hhh", "iii"] 15 ] 16 17 index = get_index(li, "bbb") # "bbb" を検索 18 print(index)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/17 10:48