die Änderung sind einfach, zuerst müssen Sie eine leere Liste erstellen, wo das Ergebnis behalten wird, dann In der for-Schleife müssen Sie prüfen, ob die Bedingung erfüllt ist, und dieses Element zur Liste hinzufügen, wenn dies der Fall ist, und schließlich diese Liste zurückgeben. Ich wähle auch einige sinnvollen Variablennamen
def famous(data_tweet, lower, higher):
result=[]
for person, tweets in data_tweet.items():
if all(lower <= tw[2] <= higher for tw in tweets):
result.append(person)
return result
dies kann ein wenig mit dem Einsatz von listcomprehension
def famous(data_tweet, lower, higher):
return [person for person, tweets in data_tweet.items() if all(lower <= tw[2] <= higher for tw in tweets)]
reduziert werden (die Ähnlichkeiten feststellen)
in jedem Fall ist das Ergebnis
>>> famous(tweet,1470000000,1480000000)
['b', 'a']
>>>
Wie Sie nicht zulassen, dass all
verwenden, dann sollte es Stil der alten Schule durchgeführt werden, das heißt mit Flagge, die eine Variable ist, die uns sagen, wenn die Bedingung erfüllt ist oder nicht
def famous(data_tweet, lower, higher):
result=[]
for person, tweets in data_tweet.items():
is_valid = True
for tw in tweets:
if not (lower <= tw[2] <= higher):
is_valid = False
break
if is_valid:
result.append(person)
return result
wir hier Zuerst nehmen wir an, dass die Bedingung erfüllt ist, dann prüfen wir, ob das tatsächlich wahr ist, und wenn nicht, ändern wir unser Flag in false und brechen diese Schleife, da es keinen Grund mehr gibt, mit weiteren Überprüfungen fortzufahren, was im Grunde die all
tut für dich. Danach hängen wir die Person entsprechend dem Wert der Flagge an die Liste an oder nicht.
(Wenn Sie auch nicht break
werden, erlauben entweder zu nutzen, sorgen Sie sich nicht und es einfach zu entfernen, das würde die Funktion nicht beeinflussen)
über das Zählen Sachen
result=[]
for person in tweet:
count = 0
for tw in tweet[person]:
count += tw[4] + tw[5]
result.append(count)
und Welches Ergebnis haben Sie von Ihrer Funktion erwartet oder wollen? – Copperfield
@Copperfield also, wenn das Datum zwischen den beiden Daten ist, im goanna füge einen Code hinzu, der sieht, wer berühmt ist (indem man die letzten zwei Zahlen hinzufügt) und wird eine Liste mit Leuten vom größten bis am wenigsten berühmt ausdrucken – CAVS
... ok, aber das Beantworte meine Frage nicht, was soll diese Funktion tun? eine Liste mit den Personen zurückgeben, die die Bedingung erfüllen? – Copperfield