gpt4 book ai didi

Python 列表无法在循环中正确附加

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:40 26 4
gpt4 key购买 nike

我正在做一个 Tweepy/Django/nltk 项目,其中有一个列表将针对搜索到的推文进行更新。这是我遇到问题的部分:

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 个不同的对象。但实际发生的情况是,每次追加到sentilist 时,它都会将列表中的每个项目更改为最后追加的对象。例如,以下是个人情绪对象:

{'tweet': 'tweet1', 'sentiment': 'pos'}
{'tweet': 'tweet2', 'sentiment': 'neg'}
{'tweet': 'tweet3', 'sentiment': 'neg'}
{'tweet': 'tweet4', 'sentiment': 'pos'}
{'tweet': 'tweet5', 'sentiment': 'neg'}

当附加到sentilist时应该是:

[{'tweet': 'tweet1', 'sentiment': 'pos'},
{'tweet': 'tweet2', 'sentiment': 'neg'},
{'tweet': 'tweet3', 'sentiment': 'neg'},
{'tweet': 'tweet4', 'sentiment': 'pos'},
{'tweet': 'tweet5', 'sentiment': 'neg'}]

但它变成了:

[{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'},
{'tweet': 'tweet5', 'sentiment': 'neg'}]

我的代码的其他部分可以工作,我觉得有一个简单的解决方案,但我仍然无法弄清楚。

最佳答案

您需要在每个循环中创建一个新的字典sentiments:

for status in tweepy.Cursor(api.search,  q=query).items(max_tweets):
sentiments = {}

您一次又一次地覆盖同一字典中的值,并在每个循环中附加相同的字典。因此,您会在 sentilist 列表中的所有条目中看到上次字典更新的值。

关于Python 列表无法在循环中正确附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com