Python: сравнение элементов в списках с помощью цикла for - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь сравнить несколько пар списков и посмотреть, есть ли в обоих списках один и тот же элемент с циклами, но похоже, что при каждом запуске я пропускаю один элемент.

for item in alp: 
   for item2 in numbers: 
      if type((pos_ans[str(item) + str(item2)])) != int: 
         for item3 in (pos_ans[str(item) + str(item2)]): 
            if item3 in listing[item + "l"]: 
               (pos_ans[str(item) + str(item2)]).remove(item3)

pos_ans[str(item) + str(item2)] - один список, а listing[item + "l"] - другой список. Обычно он работает нормально, но иногда пропускает один или два пункта.

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Хотя трудно сказать точно без большего контекста, вам, возможно, повезет больше - если это действительно один и тот же объект - поместите объекты в set s и затем вызовите intersect между ними, чтобы увидетьгде перекрытие

0 голосов
/ 05 декабря 2011

Не глядя на ваш код, я могу только предположить, что одно из ваших If утверждений делает элемент списка не учитываемым. В основном if type((pos_ans[str(item) + str(item2)])) != int:

Возможно ли, что два списка имеют целые числа в одном и том же месте?

...