2016-12-14 45 views
-2

我有一個字典,其中包含(大致)6個元素,每個元素如下所示:查找字典及其位置中的值的更有效方法

我想要做的是找到一個特定域(我通過一個方法),如果它存在,它將關鍵字及其位置存儲在一個對象中。我曾嘗試以下

def parseGoogleResponse(response, website): 

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

這種做法似乎有點乏味,也i也保持不變,在i = 10,我敢肯定,這是一種更有效的方式。我還必須考慮到,如果第一次找到該網站,那麼它最多可以查詢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

相關問題