同學,你的python~

來源:互聯網
上載者:User

標籤:idt   複製   關係   作者   most   image   ima   python   png   

不知道昨天那個科普你有沒有看懂,沒看懂也沒關係,畢竟現在只是在學基本文法。

 

今天我們要來講一下copy,fromkeys,get這三個方法。

我們先來看一下copy這個方法,copy這個方法有點特殊,我們在前面講過的複製的方法,只要修改複製後的值,被複製的值也會發生相應的改變,但是,在copy這個方法這裡,如果是實行替換的話,那麼被複製的值是不會被改變的,但如果實行的是刪除,被複製的值會被改變。我們來看一下對比代碼:

x = {‘name‘:‘Tom‘,‘phone‘:[‘123‘,‘456‘]}y = x.deepcopy()y[‘name‘] = ‘pony‘y[‘phone‘].remove(‘123‘)y#按斷行符號,得到的結果是:{‘name‘: ‘pony‘, ‘phone‘: [‘456‘]}x#按斷行符號,得到的結果是:{‘name‘: ‘Tom‘, ‘phone‘: [‘456‘]}

我們看到上面的代碼,很明顯,y是x的副本,當我們替換y中的值的時候,也就是把Tom改成pony,只有y中的Tom會發生改變,而x中的Tom並不會被改變。接著我們看一下remove操作,remove之後,x,y兩個字典的內容都被改變。那麼,我們有沒有什麼別的方法來防止在修改副本的時候,被複製值被修改?這個時候我們就需要引入deepcopy這個方法,deepcopy的使用方法和copy一樣,不過要在開頭加入from copy import deepcopy,deepcopy不修改被複製值。

接下來我們來看一下fromkeys。這個方法主要是用來建立一個字典用的,沒什麼特變的地方,我們來看一下代碼就好了:

{}.fromkeys([‘name‘,‘age‘])#按斷行符號,得到的結果是:{‘name‘: None, ‘age‘: None}

是不是一看到代碼就基本知道怎麼用了?fromkeys括弧裡面跟著的就是字典的鍵,用fromkeys建立的字典是沒有值的。

最後,我們來看一下get這個方法,這個方法的主要作用在於當你查詢字典中沒有的某個項時,字典不會報錯,會輸出一個None跟你說沒有這個項,我們來看一下範例程式碼:

x = {}print(x[‘name‘])#按斷行符號,得到的結果是:Traceback (most recent call last):#  File "<stdin>", line 1, in <module>#KeyError: ‘name‘print(x.get(‘name‘,‘no‘))#按斷行符號,得到的結果是no

看上面第一段代碼,那個就是報錯的提示,然後你看一下第二段代碼中,得到的結果是no。這是我們在get方法裡面有定義說如果找不到那麼這個項的時候,就輸出no。如果你沒有定義的話,系統預設是輸出None。

好的,今天的內容就講到這裡啦~

 

(文章圖片若有侵權,請聯絡作者刪除)

 

同學,你的python~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.