在我的代碼中,我正在使用split_message列表和查詢API。如果沒有結果,我的下一步就是將列表的索引減1,因此我從列表中刪除最後一項並重試搜索。如果再沒有結果,我想重複這個過程直到我收到結果。如何遞減循環中的列表索引
import requests
import json
message = "if i can\'t let it go out of my mind"
split_message = message.split()
length = len(split_message)
def decrementList():
initial_request = requests.get('http://ws.spotify.com/search/1/track.json?q='+"%20"
.join(split_message[:]))
json_string = initial_request.content
json_dict = json.loads(json_string)
num_results = json_dict['info']['num_results']
if num_results == 0:
print "Sorry, no match!"
if num_results > 0:
print "Result found!"
decrementList()
實際上,我的下一個步驟將是藉此:
requests.get('http://ws.spotify.com/search/1/track.json?q='+"%20"
.join(split_message[:]))
,並把它變成這樣:
requests.get('http://ws.spotify.com/search/1/track.json?q='+"%20"
.join(split_message[:-1]))
,然後這樣的:
requests.get('http://ws.spotify.com/search/1/track.json?q='+"%20"
.join(split_message[:-2]))
並重復,直到我得到一場比賽。
我可以想到非常非pythonic的方式來做到這一點,但它似乎太多,如果語句。那麼,我想要完成的是什麼樣的最好和最pythonic解決方案?
這可能很慢,因爲您會發出多個網絡請求,而不是因爲您如何處理列表。 – Keeler
慢可能是使用錯誤的詞。不是真的很慢,只是尋找比10 if語句更爲pythonic的做法。現在從帖子中刪除它。 – metersk