我已经阅读了很多奇怪的语法错误问题,并且还没有看到我的问题,我真的很茫然。我正在做一些功课,截止日期越来越近,这个错误让我无法摆脱:
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时没有发生这个错误,但是我需要全局定义它,所以我在返回后把它放入然后我得到了错误。一直在计算括号,但这似乎不是问题。
我确信当我看到问题时很容易,但我只是看不到它。谢谢你的帮助。
*投票数据是一个包含字符串的列表,我制作了拆分字符串并创建字典的程序
答案 0 :(得分: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
,然后return voting_dict
。
参见示例 -
>>> def test():
return num = 2
SyntaxError: invalid syntax
>>> def test():
return 2
答案 1 :(得分:1)
您的退货声明存在问题,您无法执行任务。只是做一步。
答案 2 :(得分: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)
后者的优点是它更通用,因此可以在其他情况下使用。