奇怪的语法错误:定义返回语句后的语法无效

2024-04-16 18:23:40 发布

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

我读过很多奇怪的语法错误问题,但还没有看到我的问题,我真的很茫然。我正在做一些作业,但最后期限快到了,这个错误我无法摆脱:

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))}

这给了我一个错误:

^{pr2}$

当我在过程中定义voting-dict时没有出现这个错误,但是我需要全局定义它,所以我把它放在return之后,我得到了错误。一直在数括号,但这似乎不是问题。在

我确信,当我看到问题时,这是很容易的,但我就是不明白。谢谢你的帮助。在

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


Tags: 字符串infordatalenreturn定义过程
3条回答

不能在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。在

参见示例-

^{pr2}$

你的报税表有问题,你不能执行任务。先做一步。在

如果要创建/填充全局变量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()

或者

^{pr2}$

甚至是

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)

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

相关问题 更多 >