關于“更新set”的作業
作業任務如下:
針對下面的set,給定一個list,對list中的每一個元素,如果在set中,就將其刪除,如果不在set中,就添加進去。
s = set(['Adam', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
我的代碼是:
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
??? for y in L:
????? for x in s:
??????? if y==x:
??????????? s.remove(x)
??????? else:
???????? ?? s.add(y)
?
?
?結果就出錯了:
Traceback (most recent call last):
? File "<pyshell#54>", line 2, in <module>
??? for x in s:
RuntimeError: Set changed size during iteration
2016-08-26
for y in L: ? ?于s,L定義是平級的 ?不要加4個空格
2016-09-22
這樣寫就算運行正確結果也肯定錯了:
set屬于無序列表,你這樣每次直接往里面插入或者刪除數據后,序列肯定會有變化
按照你這樣循環屬于死循環,例如第一次循環,你就給s中新增了?'Lisa', 'Paul',s就變成set(['Lisa', 'Paul', 'Lisa', 'Paul']),按照這樣就陷入了死循環,你可以自己推一下就知道了
2016-08-26
for y in L: ? 前面多家了空格