2017-08-30 50 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()):

相關問題