日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python中a=a+b與a+=b有什么不同?

 如果你說 a+=b 是 a=a+b 的簡單寫法,那你只說對了一半,你還沒有弄清楚 += 這種操作符的真正含義。

成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)嘉興,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

這兩種操作的結(jié)果都是 a=a+b, 但左邊的 a 和 右邊的 a 還是同一個(gè)對象么?當(dāng)弄不清楚的時(shí)候,我們可以在 Python 解釋器中試驗(yàn)一下。

 
 
 
 
  1. >>> a = 1
  2. >>> id(a)
  3. 4420422336
  4. >>> a = a + 2
  5. >>> id(a)
  6. 4420422400
  7. >>>
  8. >>> a = 1
  9. >>> id(a)
  10. 4420422336
  11. >>> a += 2
  12. >>> id(a)
  13. 4420422400
  14. >>>

可以看出,兩種方式之后,a 與原來的 a 的 id 不同,它們不再是同一個(gè)對象,也就是說當(dāng) a 是數(shù)字的時(shí)候,a+=b 是 a=a+b 的簡單寫法,那么當(dāng) a 是列表的時(shí)候呢?

 
 
 
 
  1.  >>> a = [1]
  2. >>> id(a)
  3. 140401184850560
  4. >>> a = a + [2]
  5. >>> id(a)
  6. 140401184297216
  7. >>>
  8. >>> a = [1]
  9. >>> id(a)
  10. 140401184850560
  11. >>> a += [2]
  12. >>> id(a)
  13. 140401184850560
  14. >>>

可以看出,當(dāng) a 是列表時(shí),a += b,中的 a 與原來的 a 的 id 是同一個(gè),說明 a += b 并沒有創(chuàng)建新的對象,而 a = a+b 新創(chuàng)建了一個(gè)新的對象,創(chuàng)建對象是有成本的,因此在這種情況下, a+=b 的性能是比較高的,這一點(diǎn)可以驗(yàn)證:

兩種方法都執(zhí)行 10 萬次時(shí),性能相差 1900 倍。

總結(jié)一下,對不可變對象, a+=b 就是 a=a+b 的簡單寫法,比如數(shù)字,字符串,元組。請注意,元組也是可以 a+=b、a=a+b 的哦,元組的不可變,指的是這個(gè)元組指向的對象不可變,但是元組變量卻是可以指向新的元組的。

對于可變對象,a+=b 在 a 的基礎(chǔ)上進(jìn)行自增,不創(chuàng)建新對象,而 a=a+b,創(chuàng)建了新的對象,然后再讓變量 a 指向這個(gè)新創(chuàng)建的對象,涉及創(chuàng)建對象的操作,因此性能較差??勺儗ο笥辛斜?,字典,集合,類似的,a=a*b 與 a*=b 也是一樣的,不過只有列表才支持 + 和 * 這種運(yùn)算符。

最后的話

現(xiàn)在你應(yīng)該明白了 a=a+b 與 a+=b, a=a*b 與 a*=b 的區(qū)別。對于列表而言,a*=b、a*=b是在原有列表上原地進(jìn)行操作,不創(chuàng)建新的對象,性能會更高效。

有時(shí)候越簡單的問題,越是被人忽略,卻藏著不少細(xì)節(jié),技術(shù)的道路上,細(xì)節(jié)是魔鬼,搞懂細(xì)節(jié),也是提升技術(shù)水平的方法。


網(wǎng)頁題目:Python中a=a+b與a+=b有什么不同?
分享地址:http://m.5511xx.com/article/ccdiiij.html