0

我已经阅读了很多奇怪的语法错误问题,但还没有看到我的问题,我真的很茫然。我正在做一些作业,截止日期越来越近,这个错误我无法摆脱:

def create_voting_dict():
    strlist = [voting_data[i].split() for i in range(len(voting_data))]
    return voting_dict = {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist[h]))] for h in range(len(strlist))}

这让我得到了错误:

return voting_dict = {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist[h]))] for h in range(len(strlist))}
                                                                                        ^         
SyntaxError: invalid syntax

当我在过程中定义voting_dict时没有发生这个错误,但是我需要全局定义它所以我把它放在return之后然后我得到了错误。一直在计算括号,但这似乎不是问题。

我确信当我看到问题时它很容易,但我只是没有看到它。谢谢你的帮助。

*投票数据是一个包含字符串的列表,我创建了拆分字符串并创建字典的过程

4

3 回答 3

6

您不能在return. (因为赋值不返回值)只是做

return {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist[h]))] for h in range(len(strlist))}

或者voting_dict在新语句中定义 a 然后return voting_dict

看例子——

>>> def test():
        return num = 2
SyntaxError: invalid syntax
>>> def test():
        return 2
于 2013-07-31T18:27:53.480 回答
1

它与您的退货声明有关,您无法在其中执行分配。只需提前一步。

于 2013-07-31T18:30:34.210 回答
1

如果要创建/填充全局变量voting_dict,请执行以下操作:

def create_voting_dict():
    strlist= [voting_data[i].split() for i in range(len(voting_data))]
    global voting_dict
    voting_dict= {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist))}

create_voting_dict()

或者

def create_voting_dict():
    strlist= [voting_data[i].split() for i in range(len(voting_data))]
    return {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist))}

voting_dict= create_voting_dict()

甚至

def create_voting_dict(vd):
    strlist= [vd[i].split() for i in range(len(vd))]
    return {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist))}

voting_dict= create_voting_dict(voting_data)

后者的优点是它更通用,因此可以在其他情况下使用。

于 2013-07-31T19:17:05.700 回答