我读过很多奇怪的语法错误问题,但还没有看到我的问题,我真的很茫然。我正在做一些临近截止日期的家庭作业,而我无法摆脱的这个错误:

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中定义。 (因为赋值不返回值)

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

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

参见示例-
>>> def test():
        return num = 2
SyntaxError: invalid syntax
>>> def test():
        return 2

10-07 12:47