国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Python中序列增量賦值的簡單介紹(附示例)

來源:懂視網 責編:小采 時間:2020-11-27 14:11:44
文檔

Python中序列增量賦值的簡單介紹(附示例)

Python中序列增量賦值的簡單介紹(附示例):本篇文章給大家帶來的內容是關于Python中序列增量賦值的簡單介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。增量賦值運算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一個類沒有實現 __iadd__ 方法,Pyth
推薦度:
導讀Python中序列增量賦值的簡單介紹(附示例):本篇文章給大家帶來的內容是關于Python中序列增量賦值的簡單介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。增量賦值運算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一個類沒有實現 __iadd__ 方法,Pyth
本篇文章給大家帶來的內容是關于Python中序列增量賦值的簡單介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

增量賦值運算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一個類沒有實現 __iadd__ 方法,Python 會退一步調用 __add__ 方法。這兩個方法的區別在于,__iadd__ 為就地改動,不會改變原值的內存地址,而 __add__ 方法會得到一個新對象。

考慮下面一個表達式:

a += b

如果 a 實現了 __iadd__ 方法,a 會就地改動(內存地址不變)。如果 a 沒有實現 __iadd__ 方法,那么 a += b 這個表達式的效果就變得跟 a = a + b 一樣了,生成一個新的對象賦給 a。

總體來講,可變序列一般都實現了 __iadd__ 方法,因此 += 是就地加法,而不可變序列根本就不支持這個操作。

*= 和 += 一樣,只是背后的特殊方法為 __imul__。

a = [1, 2, 3]
b = [4, 5, 6]print("id(a) = %d" % id(a))
a += bprint("id(a) = %d" % id(a))

c = [1, 2, 3]print("id(c) = %d" % id(c))
c = c + bprint("id(c) = %d" % id(c))

d = (1, 2, 3)print("id(d) = %d" % id(d))
d *= 2print("id(d) = %d" % id(d))

運行結果如下:

id(a) = 1298277978824
id(a) = 1298277978824
id(c) = 1298277978696
id(c) = 1298277978632
id(d) = 1298277972872
id(d) = 1298277136616

了解了序列的增量賦值,我們來看 Leonardo Rochael 在 2013 年的 Python 巴西會議上提到的謎題:

t = (1, 2, [30, 40])
t[2] += [50, 60]

A. t 變成 (1, 2, [30, 40, 50, 60])

B. 因為 tuple 不支持對它的元素賦值,所以會拋出 TypeError 異常

C. 以上兩個都不是

D. A 和 B 都是對的

估計很多人會跟我一樣選 B,但其實答案是 D。在控制臺運行代碼,顯示結果如下:

總結:

1、對不可變序列進行重復拼接操作的話,效率會很低,因為每次都要新建一個序列,然后把原來序列中的元素復制到新的序列里,然后再追加新的元素。

2、不要把可變對象放在元組里面。

3、增量賦值不是一個原子操作,我們剛才也看到了,它雖然拋出了異常,但 t 的值還是改變了。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python中序列增量賦值的簡單介紹(附示例)

Python中序列增量賦值的簡單介紹(附示例):本篇文章給大家帶來的內容是關于Python中序列增量賦值的簡單介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。增量賦值運算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一個類沒有實現 __iadd__ 方法,Pyth
推薦度:
標簽: 增量 python 序列
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 一区二区三区在线视频播放 | 高清亚洲 | 99久久免费国产精精品 | 91香蕉福利一区二区三区 | 女同互忝互慰dv毛片观看 | www.国产精品视频 | 欧美 亚洲 一区 | 欧美日韩一二三区 | 日韩欧美国产高清 | 国产精品久久久久久久成人午夜 | 91热国产| 亚洲欧美日韩高清一区二区三区 | 国产日韩在线看 | 国内精品视频免费观看 | 超在线视频 | 日韩 欧美 综合 在线 制服 | 国产成人久久蜜一区二区 | 国产一区二区三区精品视频 | 国产欧美一区二区精品久久久 | 欧美成人禁片在线观看网址 | 国产高清精品一区 | 国产免费视屏 | 久久精品123 | 91精品国产91久久久久久最新 | 亚洲视频在线观看网站 | 国产日韩精品欧美一区视频 | 国产有码 | 国产一区二区三区精品视频 | 国产手机在线αⅴ片无码观看 | 欧美一区二区三区四区视频 | 国产一区2区 | 亚洲专区欧美专区 | 欧美色图第一页 | 91精品国产9l久久久久 | 中文字幕第7页 | 亚洲国产第一页 | 99久久精品国产一区二区小说 | 亚洲一级二级 | 日韩欧美综合在线 | 国产高清美女一级毛片久久 | 欧美极品第1页专区 |