Вот что у меня есть:
ListA = ['000C297D-3667-0ed3-0000-038654705872', '000C297D-3667-0ed3-0000-038654705685']
ListB = ['000C297D-3667-0ed3-0000-038654705685','000C297D-3667-0ed3-0000-038654705872', few more such entries]
Цель состоит в том, чтобы проверить соответствующие элементы. Тем не менее, мне не повезло, результат сравнения соответствий, даже когда я использовал следующие методы:
Назначить ListA, ListB как setA и setB соответственно, а затем выполнить операцию пересечения, он не находит никаких Оператор match.
== с помощью итерации по списку также не генерирует совпадение.
Оператор "IN" тоже не указывает на match.
интересно, когда операция объединения выполняется на наборе для этого, он повторяет записи.
Любые указатели на этом
коде :
for key, value in networkGroup.items():
print (key,value)
setA = set(value['ReferenceId'])
print (setA)
for k, v in IDIPMap.items():
print (k,v)
if (set(k).intersection(setA)):
print ("Match")
Вывод:
Group-Test {'Group Type': 'NetworkObject', 'Id': '000c297d-3667-0ed3-0000-133143995685', 'Name': 'Group-Test', 'ReferenceId': ['000C297D-3667-0ed3-0000-038654705872', '000C297D-3667-0ed3-0000-038654705685'], 'Type': 'NetworkObject'}
{'000C297D-3667-0ed3-0000-038654705685', '000C297D-3667-0ed3-0000-038654705872'}
000c297d-3667-0ed3-0000-038654705872 ['10.106.38.222']
000c297d-3667-0ed3-0000-038654705685 ['10.106.38.221']
в идеале сравнение переменной k должно совпадать с setA
Новый модифицированный код:
for key,value in networkGroup.items():
#print (value['ReferenceId'])
setA = set()
setA = set(value['ReferenceId'])
print (setA)
for k, v in networkID.items():
print (v['Id'])
if (v['Id'] in setA):
print ("Match")
if (v['Id'] in value['ReferenceId']):
print ("Match")
Вывод:
{'000C297D-3667-0ed3-0000-038654705685', '000C297D-3667-0ed3-0000-038654705872'} 000c297d-3667-0ed3-0000-038654705872 000c297d-3667-0ed3-0000 -038654705685
Просто не похоже ни одно из сравнений. Я думаю, что я мог бы сделать здесь грубую ошибку.