をループせずに値を使用してPythonでオブジェクトのインデックスを取得します。だから、基本的に私はこれ持って
data = [
{
"id" : "hello",
...
},
{
"id" : "world",
...
}
]
を、私は結果を取得したい:
:私のようなものを入力した場合"1"
を
get_index(id="world")
そして、主なことは私がでないことですは配列をループしたいですそこにはたくさんのデータがあるからです。ループすると簡単になりますが、私はいくつかのコードで終わるでしょう:
for obj in data:
if obj['id'] == 'hello':
print(obj['id'])
しかし、これをループなしで行う方法はありますか?
IDがアルファベット順にソートされている場合は、あなたが二分探索を使用することができます例の単なる偶然ではありません。しかし、一般的には:あなたがあなたのデータの構造に関するいくつかの追加情報を利用することができない限り、これはO(n)の操作になります。 – jonrsharpe
ありがとう。あなたは答えでそれを言うことができますので、私は受け入れられたと言えるでしょうか? data._がたくさんあるので –
さて、この特定のユースケースでは、それが簡単にあなたが_Iを言うのは、ループにしたくないしかし、あなたは実際にあなたが探している情報の正確な位置を知っていますか?おそらくそうではありません。可能な場合は、セットなどの適切なデータ構造を使用して検索を最適化できます。しかし、実際に検索することなくアイテムを検索するソリューションを求めています。これは可能ではありません。 – scharette