課程
/后端開發
/Python
/初識Python
for循環里name為啥不能in s?
2016-03-18
源自:初識Python 6-10
正在回答
先看第一個代碼??? 報錯:在迭代過程中改變了set的大小?? 在循環過程中 由if判斷而更改了set的內容? 這個是不允許的? 所以系統會進行報錯???????? 應該在代碼中創建一個 s.copy? 然后在循環過程中對s.copy進行更改(#注:這個過程迭代出來的是s的name? 判斷后更改的是s.copy的內容)? 最后再輸出s.copy 就OK
qq_Autohypnosis_0
不知道你說的是不是,在DOS窗口中運行中這樣的問題
這問題我也不知道怎么回事,但是下面可以驗證for循環是沒有錯的,因為把print 單獨拿出來輸出的結果是跟答案一樣的
嵌套反了,應該是從L取值,然后判斷是否在s里:
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
? ? if name in s:
? ? ? ? s.remove(name)
? ? else:
? ? ? ? s.add(name)
? ? ? ??
print s
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-03-30
先看第一個代碼??? 報錯:在迭代過程中改變了set的大小?? 在循環過程中 由if判斷而更改了set的內容? 這個是不允許的? 所以系統會進行報錯???????? 應該在代碼中創建一個 s.copy? 然后在循環過程中對s.copy進行更改(#注:這個過程迭代出來的是s的name? 判斷后更改的是s.copy的內容)? 最后再輸出s.copy 就OK
2016-03-21
不知道你說的是不是,在DOS窗口中運行中這樣的問題
這問題我也不知道怎么回事,但是下面可以驗證for循環是沒有錯的,因為把print 單獨拿出來輸出的結果是跟答案一樣的
2016-03-18
嵌套反了,應該是從L取值,然后判斷是否在s里:
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
? ? if name in s:
? ? ? ? s.remove(name)
? ? else:
? ? ? ? s.add(name)
? ? ? ??
print s