2016-11-05 134 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并标记为正确的答案 –