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

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

請問為什么如下不能執行?

如下?m=l?的時候不能執行
l?=?['Adam',?'Lisa',?'Bart',?'Paul']
m?=?l
for?name?in?l:
????y=name.lower()
????m.append(y)


s?=?set?(m)

print?'adam'?in?s
print?'bart'?in?s

但是將m=l換成 m=['Adam', 'Lisa', 'Bart', 'Paul']就可以了?


l?=?['Adam',?'Lisa',?'Bart',?'Paul']
m?=?['Adam',?'Lisa',?'Bart',?'Paul']
for?name?in?l:
????y=name.lower()
????m.append(y)


s?=?set?(m)

print?'adam'?in?s
print?'bart'?in?s


正在回答

3 回答

s?=?set(['Adam',?'adam',?'Lisa',?'lisa',?'Bart',?'bart',?'Paul',?'paul'])print?'adam'?in?s
print?'bart'?in?s


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

l類型為list時? 賦值給其他變量是引用傳遞,引用傳遞傳的是地址,所以你不管操作l還是m? 實際都是操作一片內存區域。int? string 為值類型傳遞,所以賦值后 新變量與原變量互不干擾。

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

http://img1.sycdn.imooc.com//5e45fab50001262e14401080.jpg

L和m指向同一個內存區域,往m里append 等于往 L 里 append,所以 for循環無法退出,執行一次for,就會再次添加,形成死循環。

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

舉報

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

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

進入課程

請問為什么如下不能執行?

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

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

幫助反饋 APP下載

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

公眾號

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