Проверка соответствия/несоответсвия

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

for field in fields:
      cursor = arcpy.SearchCursor(fc,fields)            
      if field.domain:
            b.setdefault(field.name,[])
            for domain in domain_2:
                  if field.domain == domain.name:
                        for val in domain.codedValues.keys():
                              
                              for row in cursor:
                                    if row.getValue(field.name) != val:
                                          b[field.name].append(row.getValue(field_1))

но скрипт причисляет все данные в таблице к несоответствующим эталонным хотя таких строк всего 2 штуки. Где может быть ошибка ? Правильно ли я прописываю строчку if row.getValue(field.name) != val: для проверки соответствия


Ответы (1 шт):

Автор решения: Эникейщик

Неправильно. Всегда найдется пара row.getValue(field.name) и val которые не равны, даже если поэлементно сравнивать любой список с ним же.

Например, если сравнивать список l1=[1,2] и l2=[1,2], то сначала l1[0] будет не равно l2[1], а потом l1[1] будет не равно l2[0] и оба элемента будут признаны "несоответствующим эталонным", хотя списки идентичны.

→ Ссылка