欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解Python中的*重復(fù)運(yùn)算符

 更新時(shí)間:2017年10月28日 16:48:44   投稿:mengwei  
這篇文章主要介紹了深入理解Python中的*重復(fù)運(yùn)算符,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。

在python中有個(gè)特殊的符號(hào)“*”,可以用做數(shù)值運(yùn)算的乘法算子,也是用作對(duì)象的重復(fù)算子,但在作為重復(fù)算子使用時(shí)一定要注意

注意的是:*重復(fù)出來的各對(duì)象具有同一個(gè)id,也就是指向在內(nèi)存中同一塊地址,在對(duì)各個(gè)對(duì)象進(jìn)行操作是一定要注意。

舉例來說:

>>> alist = [range(3)]*4
>>> alist
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

上面初始化一個(gè)二層列表用來模擬矩陣,該矩陣式4X3的,為描述方便,這里記矩陣為A。

現(xiàn)在我想給A11賦值為1,用下面的代碼:

alist[0][0]=1

那我們想要的結(jié)果應(yīng)該是:

[[1, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

可是很不幸,我們得到的是:

[[1, 1, 2], [1, 1, 2], [1, 1, 2], [1, 1, 2]]

這是怎么回事呢,為什么給A21賦值,其他的Ai1為什么都跟著變了呢?

原因是這樣的:

文章開始的時(shí)候我們已經(jīng)說過了,*重復(fù)出來的各對(duì)象具有同一個(gè)id,也就是指向在內(nèi)存中同一塊地址,在對(duì)各個(gè)對(duì)象進(jìn)行操作是一定要注意。

我們?cè)俪跏蓟臅r(shí)候用了重復(fù)算子"*",這個(gè)操作符在對(duì)對(duì)象進(jìn)行重復(fù)操作時(shí),會(huì)將重復(fù)的所有對(duì)象都指向同一塊內(nèi)存地址,所有當(dāng)你改變其中的一個(gè)值時(shí),其他的值自然也會(huì)更新,用python的話進(jìn)行解釋就是下面的命令及輸出:

>>> id(alist[0])
18858192
>>> id(alist[1])
18858192
>>> id(alist[2])
18858192
>>> id(alist[3])
18858192
>>>

看到了吧,id都是一樣滴,也就是說這4個(gè)list是同一個(gè)“l(fā)ist”。

既然這樣那我們想要模擬一個(gè)矩陣怎么辦呢,除了有專門的numpy包之外,你當(dāng)然可以給上層list逐個(gè)的append新的list,例如:

>>> blist=[]
>>> for i in range(4):
  blist.append([j for j in range(3)])
>>> blist
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

這樣,我們?cè)僭囋嚿厦娴馁x值操作:

>>> blist[0][0]=1
>>> blist
[[1, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]
>>>

總結(jié)

以上就是本文關(guān)于深入理解Python中的*重復(fù)運(yùn)算符的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:13個(gè)最常用的Python深度學(xué)習(xí)庫介紹、python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 淺談python3中input輸入的使用

    淺談python3中input輸入的使用

    這篇文章主要介紹了淺談python3中input輸入的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python中l(wèi)ist.copy方法用法詳解

    python中l(wèi)ist.copy方法用法詳解

    這篇文章主要給大家介紹了關(guān)于python中l(wèi)ist.copy方法使用的相關(guān)資料,文中還介紹了python?list.copy()?和?copy.deepcopy()區(qū)別,需要的朋友可以參考下
    2023-02-02
  • Flask框架debug與配置項(xiàng)的開啟與設(shè)置詳解

    Flask框架debug與配置項(xiàng)的開啟與設(shè)置詳解

    這篇文章主要介紹了Flask框架debug與配置項(xiàng)的開啟與設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例

    將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例

    今天小編就為大家分享一篇將python圖片轉(zhuǎn)為二進(jìn)制文本的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python語言中的if語句詳情

    Python語言中的if語句詳情

    這篇文章主要介紹了Python語言中的if語句詳情,每條if語句的核心都是一個(gè)值為True或False的表達(dá)式,這種表達(dá)式被稱為條件測(cè)試,下面文章介紹python語言的if語句詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • wxPython中文教程入門實(shí)例

    wxPython中文教程入門實(shí)例

    這篇文章主要為大家分享下python編程中有關(guān)wxPython的中文教程,分享一些wxPython入門實(shí)例,有需要的朋友參考下
    2014-06-06
  • 人工智能學(xué)習(xí)pyTorch自建數(shù)據(jù)集及可視化結(jié)果實(shí)現(xiàn)過程

    人工智能學(xué)習(xí)pyTorch自建數(shù)據(jù)集及可視化結(jié)果實(shí)現(xiàn)過程

    這篇文章主要為大家介紹了人工智能學(xué)習(xí)pyTorch自建數(shù)據(jù)集及可視化結(jié)果的實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 使用Python3 編寫簡(jiǎn)單信用卡管理程序

    使用Python3 編寫簡(jiǎn)單信用卡管理程序

    這篇文章主要介紹了使用Python3 編寫簡(jiǎn)單信用卡管理程序的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • python實(shí)現(xiàn)五子棋小程序

    python實(shí)現(xiàn)五子棋小程序

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)五子棋小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論