2016-11-05 1 views
-1

Если кто-то хочет перебирать несколько списков с несколькими переменными итерации, как это сделать без использования встроенных функций python, таких как zip(), или list comprehensions? Некоторые основные функции разрешены как len.Python List Multiple Iterations

Я попытался сделать эту работу с этим кодом:

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()'? Вы можете использовать 'for lst in (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

если мое решение переместило вашу проблему, повысьте и отметьте как правильный ответ –