Meine Suchbegriffe nur-Druck unsere der Letzte term in einer Liste anstelle des Begriffs gefunden [Python 2.7.6]
Ich bin mit dem praw (reddit) api, um die Suche durch Kommentare in Beiträge für eine Reihe von Worten, und die Rückkehr, das Wort. Im Grunde, meine word-Liste ist gut... nur, dass eine Liste von Wörtern:
right = [ 'i', 'he', 'she', 'it', 'we', 'have', 'has']
Dies ist innerhalb der words.py,, die habe ich importiert. Ich habe gespeichert, das in einer Variablen durch Durchlaufen es:
for word in words.right:
za = word
print za
Wenn ich drucken za, druckt er jedes einzelne Wort im Worte.Recht, wie ich es mir vorstelle. Es druckt:
i
he
she
it
we
have
has
Mein Programm gibt die Kommentare enthalten einen dieser Suchbegriffe ganz in Ordnung so, so:
for comment in flat_comment_generator:
try:
if za in comment.body.lower() and comment.id not in already_done:
fob.write(comment.id + "\n")
print comment.body
print za
Aber wenn ich drucken za, es druckt nur der Letzte term in za, nicht das, was es in dem Programm. Zum Beispiel kann es zurück:
"Comment found = Yeah, I really like basketball" "Search term = has"
Damit alles einwandfrei funktioniert bis ich Sie Fragen zurück, die bestimmten Begriff.
- "Ich habe gespeichert, das in einer Variablen durch iterieren durch Sie" ... Kannst du bitte näher erläutern? Wie funktioniert das Durchlaufen etwas, speichern es in eine variable? mit dem, was Sie gezeigt haben, dass es, nach der Schleife,
za
wird der Wert des letzten Elements inwords.right
. - Ich werde es Bearbeiten für Klarheit, nach diesem Kommentar, aber (und Geduld mit mir, ich bin neu in python) sollte nicht "for Wort in Worte zu fassen.rechts" Durchlaufen und jedes Wort in ihm? Wenn ich "print-za" das erste mal, druckt er jedes Wort einzeln.
- Ja, individuell. So, nachdem die Schleife fertig ist, ist
za
hat der Wert das Letzte, was, das gedruckt wurde. Ich bin noch nicht sicher, dass ich wirklich verstehen, das problem hier ... - vielleicht, OP denkt (fälschlicherweise), dass
za = word
funktioniert wieza.append(word)
- Okay, ich werde versuchen, mehr klar, dass ich nicht gut erklären. Ich sehe meinen Fehler hier, und es ist eine dumme: ich bin auf der Suche nach einem der Begriffe aufgelistet, die in Worten.richtig, und aus irgendeinem Grund, ich dachte, speichern es in der variable za, und dann Bestimmung der Kommentare die für eine za arbeiten würde. Was ich tun müssen, ist Suche Kommentare für die Begriffe in Worte zu fassen.Recht haben und es wieder der Begriff gefunden wurde. Ich fühle mich wie ich bin über-kompliziert, aber da bin ich überfragt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehe ich nicht aus deinem code, wie diese Suche, alle Worte, die in Kommentaren als za wird nur der Letzte Wert des word-Liste. Yo kann sehen, all die Wörter, wie Sie drucken für Sie jedes mal die Schleife, aber Sie erhalten nicht alle wenn Sie:
Ich denke, was Sie versuchen zu tun, ist so etwas wie:
Ich hoffe es hilft, ansonsten einfach Fragen.
len(terms) != 0
ersetzt werden kann, mit nurterms