Я пишу псевдокод, где я хочу, чтобы следующие два цикла «для» повторялись до тех пор, пока все ключи в data_changes и modem_changes не будут такими же, то есть не должно быть никаких ключей, которые представляют data_changes, но а не в modem_changes и наоборот. После этого я смогу написать реализацию Python; может ли кто-нибудь предоставить исходные данные? EDITED:Управляющий поток для циклов
утра больше интересует
- как позвонить func1 и func2 для ключей, которые присутствуют в одном, а не другой
2.repeating для петель, пока ключи не будут то же самое в data_changes и modem_changes
data_changes = {
'253036': [''],
'313115': ['313113']
}
modem_changes = {'305403': [],
'311957': ['253036', '312591']
}
s1 = set(data_changes.keys())
s2 = set(modem_changes.keys())
value1 = s2.difference(s1)
print value1
value2 = s1.difference(s2)
print value2
def func1 (data_changes,key):
if key == '311957':
output = ''
if key == '305403':
output = ''
return output
def func2 (modem_changes,key):
if key == '313115':
output =''
if key == '253036':
output=''
return output
def method(d1, f1, d2, f2):
s1 = set(d1.keys())
s2 = set(d2.keys())
for k in s2.difference(s1):#set(['311957', '305403'])
f1(d1, k) # k in d2 not in d1.
for k in s1.difference(s2):#set(['313115', '253036'])
f2(d2, k) # k in d1 not in d2.
while(True):
method(data_changes, func1, modem_changes, func2)
value = set(data_changes.keys()) - set(modem_changes.keys())
print value
if value == set([]):
break;
EXPECTED OUTPUT:-
data_changes = {
'253036': [''],
'313115': ['313113']
'305403':['']
'311957':['']
}
modem_changes = {'305403': [],
'311957': ['253036', '312591']
'253036':[]
'313115':[]
}
@Mike - это не только пересечение двух наборов. Есть намного больше, я пытаюсь .. более смущенно о потоке управления о том, как это может быть достигнуто. – user2125827
'data_changes.update (modem_changes)' ;-) –
@ LennartRegebro - что делает обновление? – user2125827