我正在尝试创建一个脚本,我检查old_list和new_list . 如果new_list具有与Old_list不同的值 . 如果old_list具有比new_list更多的值/元素,它将使用if-elif语句进行检查,如果有,则不应该执行任何操作,反之亦然 .
old_list = {'name': 'Hello', 'code': ['Medium', 'Easy', 'Hard']}
while True:
new_list = {'name': 'Stackoverflow', 'code': ['Hard', 'Easy']}
try:
if any(i not in old_list['code'] for i in new_list['code']):
if old_list['code'] > new_list['code']:
print("Element removed")
old_list['code'] = new_list['code']
elif old_list['code'] < new_list['code']:
print("New elements added")
old_list['code'] = new_list['code']
else:
randomtime = random.randint(1, 2)
time.sleep(randomtime)
continue
except Exception as err:
randomtime = random.randint(1, 2)
time.sleep(randomtime)
continue
输出应该是 "Element removed" ,值应该从 ['Medium', 'Easy', 'Hard']
更新 old_list['code']
到 ['Hard', 'Easy']
. 但是现在它甚至没有通过 if any(i not in old_list['code'] for i in new_list['code']):
,因为 code
中的值都在两者中但是在new_list中没有"Medium"但是由于某种原因我没有't know it doesn'通过并且它确实改为 else
.
如果new_list具有比old_list更多/更少的值/元素,并且如果元素被删除或添加,则如何更新值,如何更新值?
1 回答
if any(i not in old_list['code'] for i in new_list['code']):
仅当
new_list['code']
的任何元素不在old_list['code']
中时,才会满足此条件 . 你的new_list
是['Hard','Easy']
. 两者都出现在old_list
中,因此不满足条件,并且您的代码转到else
部分 .如果你想要做的就是找出删除的元素或添加元素,你可以检查new_list和old_list的长度 .