2016-11-05 161 views
-1

如果有人想通過多個迭代變量遍歷多個列表,如何在不使用諸如zip()list comprehensions之類的函數中構建的python的情況下完成?允許一些基本功能,如len。Python列表多個迭代

我試圖讓這段代碼這項工作:

list1 = [1,2,3] 
list2 = [4,5,6] 
list3 = [] 

def function(): 
    for i,y in (list1, list2): 
     total = i * y 
     list3.append(total) 
    return list3 
print(function()) 

,但我得到

"ValueError: too many values to unpack (expected 2)".

我想獲得一個新的列表將與1號乘以第1個要素的錯誤另一個列表中的元素等等。

+0

爲什麼你不希望使用所提供的功能?你有沒有考慮過使用索引('return list1 [i] * list2 [i] * list3 [i]')? – jonrsharpe

+1

有沒有理由不使用'zip()'?你可以去'(list1,list2,list3)'。 – Jan

+1

使用'zip';這是(其中一個原因)它是什麼。 – Evert

回答

1

如果你的兩個數組是equal by size。下面的答案是正確的

list1 = [2,2,2] 
    list2 = [3,3,3] 

    def function(): 
     for i in range(len(list1)): 
      print(list1[i]*list2[i]) 
    print(function()) 

但最好的做法是使用zip方法

for i, j in zip(list1, list2): 
    print(i * j) 
+0

@tayrix是否解決了您的問題? –

+0

是的,我已經完成了,非常感謝。通過像這樣的列表中的每個索引訪問我沒有發生過。我需要爲每個人道歉。我認爲我已經明確地定義了這個問題,而且我對編程仍然很陌生,所以我發佈了一些令人困惑的東西。 – tayrix

+0

如果我的解決方案解決您的問題,upvote並標記爲正確的答案 –