为什么在调用函数时,函数中的for循环不能作为for循环工作?

2024-09-26 04:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个作业在一些tweet上做情绪分析功能,我有几个问题

1)当我单独使用for循环时,它可以工作,但是当我尝试为函数调用它时,它不能工作,但是如果我单独使用for循环,我必须重复相同的代码(因为情绪分析考虑时区,因此,我必须在不同的时区反复地重复代码,而不是多次调用函数)

def sentiment_calculations(keywordsFromTweet, wordCounter, tweetCounter, sentimentValue):
        tweetCounter += 1
        for word1, key1 in valueAndKeywordList:
            for j in tweetsWithLatLong:
                for i in j:
                    for k in i:
                        if k == word1 in keywordList:
                            keywordsFromTweet.append(k)
                            wordCounter += 1
        for word2, key2 in valueAndKeywordList:
            for i in keywordsFromTweet:
                if i == word2:
                    sentimentValue.append(key2)
        average = sum(sentimentValue)/wordCounter
        finalTuple = (average, wordCounter, tweetCounter)
        return finalTuple

这里的函数是用来计算每个tweet中的关键字、每个tweet中的关键字数、tweet数和情绪值

 keywordsFromTweetEastern = []
    sentimentValueFromTweetEastern = []
    #Eastern
    for i in tweetsWithLatLong:
        j = i[0]
        if float(j[0]) <= p1[0] and float(j[0]) >= p2[0] and float(j[1]) <= p1[1] and float(j[1]) >= p3[1]:
            eastern = sentiment_calculations(keywordsFromTweetEastern, wordCounterEastern, easternTweets, sentimentValueFromTweetEastern)

这是我希望函数运行的第一个时区(东部标准时间)

输出应该按顺序给我正确的数字(每个tweet中关键字的情绪总值、每个时区的关键字数和每个时区的tweet数),但它不像for循环那样循环,除非我从每个时区的函数中复制并粘贴代码

但我想做一个函数来实现这一点,而不是有重复的代码

感谢您的帮助!谢谢


Tags: and函数代码inforiffloattweet