2016-12-14 9 views
-2

で値を見つけるのより効率的な方法私は(約)含まれている辞書を持っている6つの要素は、以下のように見える要素のそれぞれ:辞書とその位置

私は何をしたいの特定を見つけていますドメイン(メソッドを通過する)を返し、存在する場合は、オブジェクト内にキーワードとその位置を格納します。私は、このアプローチはまた、i = 10で同じままで、私は、これは、より効率的な方法であることをかなり確信して少し退屈であると考えられるともi以下

def parseGoogleResponse(response, website): 

    i = 0 
    for item in response['items']: 
     if(item['formattedUrl'] == website): 
      print i 
      break; 
     i++ 

を試してみました。また、ウェブサイトが初めて見つからない場合は、APIに最大5ページまでクエリを実行し、各ページには6つの検索結果が含まれているため、位置にある場合は何らかの形で位置を計算する必要があることも考慮する必要があります別のページ。

アイデア

+0

。 – Ryan

+0

'keyword'引数はあなたの関数で使われていません、' keyword'は何ですか? また、これらの6つのアイテムについて期待される結果をどのように表示するかを示してください – RomanPerekhrest

+0

python!= C++ ... 'i ++'は構文エラーです –

答えて

1

Pythonの辞書は注文されていません。 listタイプのオブジェクトとは異なり、辞書内の何かの位置を見つける方法はありません。

あなたはかなり簡単のようなもので辞書内の値が存在するかどうかを確認することができます:あなたはより速くよりも、任意順のリストを検索することはできません

if website in response['items'].values(): 
    # If you enter this section, you know it's in the dictionary 
else: 
    # If you end up here, it isn't in the dictionary 
+0

返信いただきありがとうございます - 返信の順序はどうなっていますか?私はgoogleapiclientを使用しています。これはキーワードランクを追跡するためのものです。 – Phorce

+1

コレクションモジュールには、 'OrderedDict'があります。これは、標準の 'dict'のための差し替え可能な置換えですが、それはそれらが作成された順に項目を維持することを除いてです。 – nigel222

関連する問題