2015-01-06 3 views
-4

Я пытаюсь понять, почему этот код отличается от того, как я ожидал. Код:Вложенные петли Python с непредвиденными операциями if

for i1 in [xrange(567)]: 
    W = x1[i1] 
    Z = y[i1] 
    ZW = np.array([z * (1/w) for z, w in zip(Z,W)]) 
    for j1 in [xrange(567)]: 
     if j1 != i1: 
      E1 = np.array([z - zw * w for z, zw, w in zip(Z,ZW,W)]) 

Где x1 есть (566,1) -array и уа (566,2) -array из файла .csv. Теперь я думаю, что заявление if j1 != i1: не работает, как это можно было бы ожидать, так как если бы я попробовать более простой схеме:

for i in [range(567)]: 
    for j in [range(567)]: 
     if i != j: 
      print i 
      print j 

Он возвращает ни потребности

+1

правильно отформатируйте свой код. – dnozay

+1

И добавьте * полный * код, что вы ожидаете и какой текущий выход. – HarryCBurn

+2

Операция '[xrange (567)]' создала список с генератором, поскольку это только элемент. Я думаю, вы хотите перебирать числа. Затем вам придется удалить скобки. –

ответ

0

Ваш код не должен быть изменен:

for i in range(567): 
    for j in range(567): 
     # do something here. 

Как отмечали комментаторы, опустите квадратные скобки из линии for.