如何检查更改列表

2024-10-02 02:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试用一个googlecalendarapi for python,我想每五秒钟检查一次日历中添加的新事件。我知道将其设置为旧列表,然后在更新时再次进行比较,如下所示:

-main()是从日历中检索数据的函数。
-Allevents是日历中的事件列表。它在main()
中附加了事件 -其他名字很直观

while 1 == 1:
     time.sleep(5)
     main()
     if first == 0:
         m = set(allevents) - set(oldevents)
         print(oldevents)
         if not m:
             print('nothing changed')
         else:
             print(m)
             print("--------------------------------------------------------")
     else:
         oldevents = allevents
         first = False
     oldevents = allevents
     allevents.clear()

当我运行这个程序时,它第一次检索到的数据运行得非常顺利:输出allevents(如main()中所写),其他什么都没有。第二次是我还没有做任何更改的时候,所以它会输出alleventsoldevents(它们的值相同)以及nothing changed消息

while循环的第三次运行是在我向日历中添加事件时。理论上,我希望它输出我因为

m = set(allevents) - set(oldevents)
print(oldevents)
     if not m:
         print('nothing changed')
     else:
         print(m)
         print("--------------------------------------------------------")

但是,它跟随if not m:,输出alleventsoldevents的值以及我添加的新事件^{nothing changed消息

旁注:当我在下一个循环中删除该事件时,两个列表也会删除该事件

四个循环(出于演示目的进行了一些修改):

Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']

Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']
['5kt8vb1m5tad2h6higtd8seqp9']
nothing changed

Getting the upcoming 10 events
['7p4hs2ribddnl5h13erv5c1rir', '5kt8vb1m5tad2h6higtd8seqp9']
['7p4hs2ribddnl5h13erv5c1rir', '5kt8vb1m5tad2h6higtd8seqp9']
nothing changed

Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']
['5kt8vb1m5tad2h6higtd8seqp9']
nothing changed

如果你认为更多的代码是必要的,告诉我,我会张贴整个事情


Tags: the列表ifmain事件noteventsprint

热门问题