Проверка соответствия/несоответсвия
Пытаюсь создать словарь с полями данные в которых не соответствуют эталонному
красным выделены ячейки в которых данные не соответствуют эталонным
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] и оба элемента будут признаны "несоответствующим эталонным", хотя списки идентичны.