為什么我的程序會輸出所有的元素?
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
? ? if name in s:
? ? ? ? s.remove(name)
? ? if not name in s:
? ? ? ? s.add(name)
print s
剛開始我是這樣寫的,結果輸出為set(['Lisa', 'Paul', 'Adam', 'Bart'])。
如果把倒數第三行if not name in s:改為else:,那么結果是set(['Bart']),即正確結果。
請問大家為什么結果會不同?
ps:我自己的理解是if-else是同時進行的,而if-if有先后順序。
2015-05-11
你第一個if remove掉了,然后第二個if判斷不在里面,然后又加進去了。當然是全部了。