Ich mache ein Tweepy/Django/Nltk-Projekt, wo ich eine Liste, die für die gesuchten Tweets aktualisieren wird. Hier ist der Teil, wo ich ein Problem habe:Python-Liste nicht korrekt in einer Schleife anfügen
query = 'happy'
max_tweets=5
search_results = {}
sentiments = {}
sentilist = []
for status in tweepy.Cursor(api.search, q=query).items(max_tweets):
search_results[status.text] = unicode(status.text)
search_results[status.text] = search_results[status.text].replace('|', ' ')
search_results[status.text] = search_results[status.text].replace('\n', ' ')
print(senti.linearsvc10(status.text))
sentiments['tweet'] = unicode(search_results[status.text])
sentiments['sentiment'] = senti.linearsvc10(unicode(status.text))
sentilist.append(sentiments)
print('inloop sentiments')
print sentiments
print('inloop sentilist')
print sentilist
print('sentiments')
print sentiments
print('sentilist')
print sentilist
im Grunde, Gefühle werden gleich zu
{'tweet': 'Actual tweet here', 'sentiment': 'pos'}
So für jeden Durchlauf der Schleife, möchte ich die Gefühle in die Liste anzuhängen, so Am Ende werde ich 5 verschiedene Objekte in der Liste haben. Aber was tatsächlich passiert, ist für jeden Anhang an sentilist, es ändert jedes Element in der Liste zu dem letzten Objekt, das angehängt wurde. Beispiel würden die folgenden einzelnen Empfindungen Objekte sein:
{'tweet': 'tweet1', 'sentiment': 'pos'}
{'tweet': 'tweet2', 'sentiment': 'neg'}
{'tweet': 'tweet3', 'sentiment': 'neg'}
{'tweet': 'tweet4', 'sentiment': 'pos'}
{'tweet': 'tweet5', 'sentiment': 'neg'}
wenn sollte sentilist Anhängen sein:
sondern wird es:
[{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'}]
Andere Teile meines Codes arbeiten und Ich habe das Gefühl, dass es eine einfache Lösung dafür gibt, aber ich kann es immer noch nicht herausfinden.
Das funktioniert, danke für die Antwort und Erklärung! – user4215649