亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣不對呢?列表不是可變的嗎?

https://img1.sycdn.imooc.com//5cbe8135000174ed03860161.jpg

為什么name一定要改成set(name)

或者要創建一個空列表

謝謝

正在回答

3 回答

name=['Adam','Bart']

k=0

for i in name:

? ? k=k+1

? ? j=i.lower()

? ? name.append(j)

? ? if(k==2):

? ? ? ? break

s = set(name)

print 'adam' in s

print 'bart' in s

少了判定條件,循環無法終止


4 回復 有任何疑惑可以回復我~
#1

_Cecilia_L 提問者

可是for語句不是自動遍歷到最后一個停止嗎??
2019-05-02 回復 有任何疑惑可以回復我~

因為list里面的元素可以重復,每循環一次,新添一個元素進入list,這樣永遠循環不完。

3 回復 有任何疑惑可以回復我~
#1

_Cecilia_L 提問者

明白啦 謝謝~
2019-07-06 回復 有任何疑惑可以回復我~

個人認為是檢測標準的問題,該章節需要掌握set的用法,所以會檢測輸出的s是不是set類型

0 回復 有任何疑惑可以回復我~
#1

_Cecilia_L 提問者

那這樣寫本身是沒有問題的嗎?我在想會不會是因為我已經把name列表里面的元素改了,就不能再append了
2019-04-23 回復 有任何疑惑可以回復我~
#2

white_lie 回復 _Cecilia_L 提問者

寫法應該是沒問題的,你只不過是將每個字符串的大寫字母改為小寫然后賦值于j,再將j追加到list變量name中。我當時set中的元素只寫了兩個也沒報錯。只能猜測檢測條件之一是讓s為set型。
2019-04-24 回復 有任何疑惑可以回復我~
#3

_Cecilia_L 提問者 回復 white_lie

可是我在第五行寫了s = set(name),這個不能算是set型嗎?
2019-04-24 回復 有任何疑惑可以回復我~
#4

white_lie 回復 _Cecilia_L 提問者

抱歉啊,我仔細看了一下,你這問題是死循環吧? 如果name是list,它不會區別重復,append一直在后邊添加,所以i會隨著name的長度改變一直改。
2019-04-24 回復 有任何疑惑可以回復我~
#5

white_lie 回復 _Cecilia_L 提問者

我稍微改了一下,這樣就ok了 name=['Adam','Bart'] for i in name: j=i.lower() if j in name: break name.append(j) s=set(name) print 'adam' in s print 'bart' in s
2019-04-24 回復 有任何疑惑可以回復我~
#6

_Cecilia_L 提問者 回復 white_lie

哈哈 懂了 謝謝~~
2019-06-16 回復 有任何疑惑可以回復我~
查看3條回復

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為什么這樣不對呢?列表不是可變的嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號