Frage
Ich habe zu vielen Schleifen in Schleifen und will einen Python, wie es für die Säuberung
Antwort
Ja, es ist eine Python-Art und Weise der Reinigung Schleifen-in- Loops, um es besser aussehen zu lassen, aber es wird immer noch loops-in-loops unter den Deckeln geben.
import requests
import json
r = requests.get('https://api.coinmarketcap.com/v1/ticker/')
j = r.json()
id_list = [item['id'] for item in j]
for n in id_list:
url = 'https://api.coinmarketcap.com/v1/ticker/%s' %n
req = requests.get(url)
js = req.json()
print "\n".join([ n+"\n"+item['rank'] for item in js ])
Insight aus dem Ausführen diesen
diesen spezifischen Code Nach dem Ausführen, merke ich, dass Ihre tatsächlich zuerst die Liste der tickers in der Reihenfolge des Ranges Abrufen
r = requests.get('https://api.coinmarketcap.com/v1/ticker/')
mit und dann mit
url = 'https://api.coinmarketcap.com/v1/ticker/%s' %n
um den Rang zu bekommen.
Solange die https://api.coinmarketcap.com/v1/ticker/ die Elemente in der Reihenfolge der Rang zurück weiter Sie Ihren Code wie so
import requests
import json
r = requests.get('https://api.coinmarketcap.com/v1/ticker/')
j = r.json()
id_list = [item['id'] for item in j]
result = zip(id_list,range(1,len(id_list)+1))
for item in result :
print item[0]
print item[1]
Antwort Zusatz Frage
Zusatz Frage vereinfachen könnte: Was passiert, wenn Ich möchte einen weiteren Parameter sagen: price_usd? ..... für kühle in js: print n Druck cool [ 'Rang'] Druck cool [ 'price_usd']
Antwort:
Änderung der Linie
print "\n".join([ n+"\n"+item['rank'] for item in js ])
zu
print "\n".join([ n+"\n"+item['rank']+"\n"+cool['price_usd'] for item in js ])
Manchmal brauchen Sie verschachtelte For-Schleifen. Das sieht wie eine dieser Zeiten aus. – bernie
Ich bekomme eine Menge Daten und verschachtelte For-Schleife ist zu zeitaufwendig :(Ich verstehe Ihren Punkt obwohl. Vielen Dank für das Feedback. – Master
Um das Schreiben einer verschachtelten Schleife zu vermeiden, könnten Sie eine Funktion zum Analysieren von 'js' erstellen, die die innere for-Schleife enthält. Beachten Sie, dass dies technisch immer noch verschachtelte Schleifen enthält, aber Ihr Code wird zumindest flacher aussehen. –