Я делаю проект Tweepy/Django/nltk, где у меня есть список, который будет обновляться для найденных твитов. Вот та часть, где у меня проблема:Список Python не правильно добавлен в цикле
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
в основном, чувство составит
{'tweet': 'Actual tweet here', 'sentiment': 'pos'}
Таким образом, для каждого запуска цикла, я хочу, чтобы чувства, чтобы добавить в список, так к концу этого, у меня будет 5 различных объектов в списке. Но то, что на самом деле происходит, для каждого добавляется к сандистиму, оно изменяет каждый элемент в списке до последнего добавленного объекта. Например, следующее будет индивидуальные настроения объектов:
{'tweet': 'tweet1', 'sentiment': 'pos'}
{'tweet': 'tweet2', 'sentiment': 'neg'}
{'tweet': 'tweet3', 'sentiment': 'neg'}
{'tweet': 'tweet4', 'sentiment': 'pos'}
{'tweet': 'tweet5', 'sentiment': 'neg'}
при добавлении к sentilist должно быть:
, но вместо этого он становится:
[{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'}]
Другие части моих кодов работать и Я чувствую, что для этого есть простое решение, но я все еще не могу понять.
Это работает, спасибо за ответ и объяснение! – user4215649