2017-08-30 54 views
0

在我的代码中,我压缩了两个字典列表,其中一个简单定义(amud_titles),另一个使用方法(amud_ranges)。Python:为什么拉链给我一个“SyntaxError:不能分配给函数调用”

当我尝试重复这样的:

for zip(amud, amud_range) in zip(amud_titles,get_amud_index()): 

我得到这个错误:

SyntaxError: can't assign to function call 

然而,当我重复这样的:

for amud_range in get_amud_index(): 

我不明白任何错误。

产生第二个列表的方法是相当复杂的,但我认为这不是问题,因为我只有问题,当我开始使用拉链......

回答

1

您使用不正确的语法的for循环。

当你通过什么要循环,语法是:

for x in y 

其中x是分配到y的每一个项目,其中y是一个迭代的对象(名单等)的变量。如果你有一个每次迭代多个对象(例如列表由zip()返回一个列表,那么你可以在你的榜样,for zip(amud, amud_range) in zip(amud_titles,get_amud_index()):分配多个变量的多个对象。

lst = [("a", "b"), ("c", "d")] 
for i in lst: 
    print(i) # Prints ("a", "b") then ("c", "d") 

for i, j in lst: 
    print(i) 
    print(j) # Prints "a" then "b" then "c" then "d" 

所以,你不实际需要,围绕这些变量名第一zip()。Python是期待的变量名,而不是某种形式的任何结构。

只是做for amud, amud_range in zip(amud_titles,get_amud_index()):

相关问题