不是啊兄弟,就是有重合啊所以not flag为真,才能进入if条件判断提取重合元素,我大概明白你意思,但是你上面有点想的不对,if not flag不是用来判断如果不重合的意思,他这句话只是为了保证可以进入if判断从而提取重复元素,不是用来判断重不重合的,你想想如果没有重合元素,flag值为真,not flag为假,就无法进入if条件所以也就不存在提取重复元素。我不知道说清楚没有,兄弟你再想想
if not flag: for item in s1: 这个是item=([1,2,3,4,5,6,8,10])。。。。这句: if item not in s2: 这个剔除s2不包含在item中的元素,那么这里为啥最后输出结果没有10呢? 10在item中,这句是剔除s2不在item中的值则跳出,与item存在的值没关系 啊应该最后结果应该有10啊?可以10怎么被剔出去的啊?大哥在点播下我吧
模拟一下程序运行,for item in s1第一轮item值为1,if 1 not in s2,执行continue,执行continue也就是终结这一轮进入下一轮循环,但显然if不成立,也就不执行continue,程序继续执行下一行print也就是打印了重合元素,后几轮执行情况同第一轮,一直到s1的最后一个元素10才不一样,10并不在s2中if条件满足,这轮循环中后续语句不再执行,所以print不会执行也就没有输出。可以再回顾一下for和continue的东西,continue跳出的是本次循环所以是针对for并非针对if。还有一个小tip,可以借助pycharm断点一步步看程序运行,加油!