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

深入理解Python中的*重復運算符

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

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

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

舉例來說:

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

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

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

alist[0][0]=1

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

[[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為什么都跟著變了呢?

原因是這樣的:

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

我們再初始化的時候用了重復算子"*",這個操作符在對對象進行重復操作時,會將重復的所有對象都指向同一塊內(nèi)存地址,所有當你改變其中的一個值時,其他的值自然也會更新,用python的話進行解釋就是下面的命令及輸出:

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

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

既然這樣那我們想要模擬一個矩陣怎么辦呢,除了有專門的numpy包之外,你當然可以給上層list逐個的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]]

這樣,我們再試試上面的賦值操作:

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

總結(jié)

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

相關文章

  • 淺談python3中input輸入的使用

    淺談python3中input輸入的使用

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

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

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

    Flask框架debug與配置項的開啟與設置詳解

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

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

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

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

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

    Python語言中的if語句詳情

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

    wxPython中文教程入門實例

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

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

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

    使用Python3 編寫簡單信用卡管理程序

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

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

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

最新評論