Я Ниже приведен списокПоиска несоответствующего элемента для одного индекса в списке питона
l1 = ['a','b','c','a']
l2 = ['a','d','c','c']
Я хочу, чтобы выяснить элементы l2, которые не соответствуют элементам l1 в том же индексе. например: выход для вышеуказанного списка будет ['d', 'c']
как l2 должен иметь 'b' в 2-м положении.
Я могу сделать это путем повторения списка и поиска несоответствия.
l3 = []
for i in range(len(l1)):
if l1[i] != l2[i]: l3.append(l2[i])
print l3
Есть ли лучший способ для этого. Спасибо.
У меня был такой же список размеров, но да, это хорошо для будущего. – mribot
Я думаю, что использование 'izip_longest' здесь вводит в заблуждение, потому что оно решает только половину проблемы (что OP не имеет). Что, если 'l1' длиннее' l2', но его дополнительные значения - все 'None'? В некоторых приложениях это может быть правильное поведение. В других случаях вы можете решить это, используя 'fillvalue = object()'. Но просто предлагая 'izip_longest' как лучше, чем' zip', даже не упоминая, похоже, что это приведет к тому, что люди будут беспокоиться. – abarnert
Да, я согласен @abarnert ... спасибо, что упомянул об этом ... :) любое значение fillvalue может существовать в списке сравнения, и это, безусловно, является недостатком ... но для правильного решения этого вопроса потребуется больше строк. .. поэтому я упростил это к этому, даже если есть, конечно, крайние случаи, которые сломают его. –