因此,我想到了您有[1,2,3,4,5]
等列表的情况,我的想法是,如果弹出/删除了其中一些列表,则不应打印该列表。假设以此类推。我们删除了数字3
。在这种情况下,我们的列表将为[1,2,4,5]
,脚本应该是常规的。但是只要将值添加到列表中。然后打印出整个列表,以此类推。添加数字6
-> [1,2,4,5,6]
-打印出整个列表。
问题是我不想在删除任何内容时得到通知,所以我的想法从一开始就是检查列表的长度,然后在列表被更改时通知,但是后来我意识到我错了这样做是因为它会在添加和/或删除时通知,这就是为什么我在这里。
我所做的是将new_name_list
与old_name_list
进行比较,但这将通知基本上将发生的任何变化。
import names
def get_value(value):
value = names.get_full_name()
names_list = []
for names in names.get_last_name():
names_list.append(names)
break
identifier = ('{} {}').format(value, names_list)
return identifier
if __name__ == '__main__':
old_name_list = get_value()
while True:
new_name_list = get_value()
if new_name_list not in old_name_list:
print("Yay new name added")
else:
print('I will re try again in 5 sec')
time.sleep(5)
我的问题是-如何使它仅在添加但未删除某些内容时仅在names_list的值得到通知时才打印?
等
我希望我确实解释了它的正确性,以及是否有任何误解。请让我知道,我将尝试尽快编辑,并且下次还要学会更好地编写(任何提示,我们都会感激:))
答案 0 :(得分:1)
算法可能如下:
示例:
def detect_change(old_list, new_list):
changed_flag = False
old_list.sort()
new_list.sort()
if len(old_list) == len(new_list):
for i in range(0, len(old_list)):
if old_list[i] != new_list[i]:
changed_flag = True
elif len(old_list) < len(new_list):
changed_flag = True
return changed_flag
list1 = ["a", "b", "c", "d"]
list2 = ["a", "b", "c", "k"]
print(detect_change(list1, list2))