欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

跟老齊學Python之字典,你還記得嗎?

系統(tǒng) 1760 0

字典,這個東西你現(xiàn)在還用嗎?隨著網(wǎng)絡的發(fā)展,用的人越來越少了。不少人習慣于在網(wǎng)上搜索,不僅有web版,乃至于已經(jīng)有手機版的各種字典了。我曾經(jīng)用過一本小小的《新華字典》。

《新華字典》是中國第一部現(xiàn)代漢語字典。最早的名字叫《伍記小字典》,但未能編纂完成。自1953年,開始重編,其凡例完全采用《伍記小字典》。從1953年開始出版,經(jīng)過反復修訂,但是以1957年商務印書館出版的《新華字典》作為第一版。原由新華辭書社編寫,1956年并入中科院語言研究所(現(xiàn)中國社科院語言研究所)詞典編輯室。新華字典由商務印書館出版。歷經(jīng)幾代上百名專家學者10余次大規(guī)模的修訂,重印200多次。成為迄今為止世界出版史上最高發(fā)行量的字典。
這里講到字典,不是為了敘舊。而是提醒看官想想我們?nèi)绾问褂米值洌合炔樗饕ú还苁瞧匆暨€是偏旁查字),然后通過索引找到相應內(nèi)容。

這種方法能夠快捷的找到目標。

在python中,也有一種數(shù)據(jù)與此相近,不僅相近,這種數(shù)據(jù)的名稱就叫做dictionary,翻譯過來是字典,類似于前面的int/str/list,這種類型數(shù)據(jù)名稱是:dict

依據(jù)管理,要知道如何建立dict和它有關(guān)屬性方法。

因為已經(jīng)有了此前的基礎,所以,學這個就可以加快了。

前面曾經(jīng)建議看官一個很好的學習探究方法,比如想了解str的有關(guān)屬性方法,可以在交互模式下使用:

復制代碼 代碼如下:

>>>help(str)

將得到所有的有關(guān)內(nèi)容。

現(xiàn)在換一個,使用dir,也能得到相同的結(jié)果。只是簡單一些罷了。請在交互模式下:

            
>>> dir(dict)
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
          


以__(雙下劃線)開頭的先不管。看后面的。如果要想深入了解,可以這樣:

復制代碼 代碼如下:

>>> help(dict.values)

然后出現(xiàn):

復制代碼 代碼如下:

Help on method_descriptor:

values(...)
??? D.values() -> list of D's values
(END)


也就是在這里顯示出了values這個內(nèi)置函數(shù)的使用方法。敲擊鍵盤上的q鍵退回。

概述

python中的dict具有如下特點:

dict是可變的
dict可以存儲任意數(shù)量的Python對象
dict可以存儲任何python數(shù)據(jù)類型
dict以:key:value,即“鍵:值”對的形式存儲數(shù)據(jù),每個鍵是唯一的。
dict也被稱為關(guān)聯(lián)數(shù)組或哈希表。
以上諸條,如果還不是很理解,也沒有關(guān)系,通過下面的學習,特別是通過各種實驗,就能理解了。

創(chuàng)建dict

話說創(chuàng)建dict的方法可是遠遠多于前面的int/str/list,為什么會多呢?一般規(guī)律是復雜點的東西都會有多種渠道生成,這也是從安全便捷角度考慮吧。

方法1:

創(chuàng)建一個空的dict,這個空dict,可以在以后向里面加東西用。

復制代碼 代碼如下:

>>> mydict = {}
>>> mydict
{}

創(chuàng)建有內(nèi)容的dict。

復制代碼 代碼如下:

>>> person = {"name":"qiwsir","site":"qiwsir.github.io","language":"python"}
>>> person
{'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}

"name":"qiwsir"就是一個鍵值對,前面的name叫做鍵(key),后面的qiwsir是前面的鍵所對應的值(value)。在一個dict中,鍵是唯一的,不能重復;值則是對應于鍵,值可以重復。鍵值之間用(:)英文的分號,每一對鍵值之間用英文的逗號(,)隔開。

復制代碼 代碼如下:

>>> person['name2']="qiwsir"??? #這是一種向dict中增加鍵值對的方法
>>> person
{'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}

如下,演示了從一個空的dict開始增加內(nèi)容的過程:

            
>>> mydict = {}
>>> mydict
{}
>>> mydict["site"] = "qiwsir.github.io"
>>> mydict[1] = 80
>>> mydict[2] = "python"
>>> mydict["name"] = ["zhangsan","lisi","wangwu"]
>>> mydict
{1: 80, 2: 'python', 'site': 'qiwsir.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']}

>>> mydict[1] = 90 #如果這樣,則是修改這個鍵的值
>>> mydict
{1: 90, 2: 'python', 'site': 'qiwsir.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']}


          

方法2:

            
>>> name = (["first","Google"],["second","Yahoo"])   #這是另外一種數(shù)據(jù)類型,稱之為元組,后面會講到
>>> website = dict(name)
>>> website
{'second': 'Yahoo', 'first': 'Google'}

          

方法3:

這個方法,跟上面的不同在于使用fromkeys

            
>>> website = {}.fromkeys(("third","forth"),"facebook")
>>> website
{'forth': 'facebook', 'third': 'facebook'}

          

需要提醒的是,這種方法是從新建立一個dict。

訪問dict的值

因為dict是以鍵值對的形式存儲數(shù)據(jù)的,所以,只要知道鍵,就能得到值。這本質(zhì)上就是一種映射關(guān)系。

            
>>> person
{'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}
>>> person['name']
'qiwsir'
>>> person['language']
'python'
>>> site = person['site']
>>> print site
qiwsir.github.io

          

如同前面所講,通過鍵能夠增加dict中的值,通過鍵能夠改變dict中的值,通過鍵也能夠訪問dict中的值。

看官可以跟list對比一下。如果我們訪問list中的元素,可以通過索引值得到(list[i]),如果是讓機器來巡回訪問,就可以用for語句。復習一下:

            
>>> person_list = ["qiwsir","Newton","Boolean"]  
>>> for name in person_list:
...   print name
... 
qiwsir
Newton
Boolean

          

那么,dict是不是也可以用for語句來循環(huán)訪問呢?當然可以,來看例子:

            
>>> person
{'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}
>>> for key in person:
...   print person[key]
... 
qiwsir
qiwsir
python
qiwsir.github.io

          

知識

什么是關(guān)聯(lián)數(shù)組?以下解釋來自維基百科

在計算機科學中,關(guān)聯(lián)數(shù)組(英語:Associative Array),又稱映射(Map)、字典(Dictionary)是一個抽象的數(shù)據(jù)結(jié)構(gòu),它包含著類似于(鍵,值)的有序?qū)ΑR粋€關(guān)聯(lián)數(shù)組中的有序?qū)梢灾貜停ㄈ鏑++中的multimap)也可以不重復(如C++中的map)。
這種數(shù)據(jù)結(jié)構(gòu)包含以下幾種常見的操作:

1.向關(guān)聯(lián)數(shù)組添加配對
2.從關(guān)聯(lián)數(shù)組內(nèi)刪除配對
3.修改關(guān)聯(lián)數(shù)組內(nèi)的配對
4.根據(jù)已知的鍵尋找配對
字典問題是設計一種能夠具備關(guān)聯(lián)數(shù)組特性的數(shù)據(jù)結(jié)構(gòu)。解決字典問題的常用方法,是利用散列表,但有些情況下,也可以直接使用有地址的數(shù)組,或二叉樹,和其他結(jié)構(gòu)。
許多程序設計語言內(nèi)置基本的數(shù)據(jù)類型,提供對關(guān)聯(lián)數(shù)組的支持。而Content-addressable memory則是硬件層面上實現(xiàn)對關(guān)聯(lián)數(shù)組的支持。
什么是哈希表?關(guān)于哈希表的敘述比較多,這里僅僅截取了概念描述,更多的可以到維基百科上閱讀。

散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(Key value)而直接訪問在內(nèi)存存儲位置的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過把鍵值通過一個函數(shù)的計算,映射到表中一個位置來訪問記錄,這加快了查找速度。這個映射函數(shù)稱做散列函數(shù),存放記錄的數(shù)組稱做散列表。


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩在线视频中文字幕 | 国产欧美日韩在线 | www.亚洲| 日本精品久久久久中文字幕 | 麻豆短视频传媒网站怎么找 | 久久久综合 | 91视频苹果版 | 久久国产精品精品国产 | 国产免费福利视频一区二区 | 欧美在线国产 | 狠狠操社区| 黄色网址在线免费播放 | 555夜色666夜色精品站 | 中文字幕 国产精品 | 日韩经典欧美一区二区三区 | 九九热国产精品视频 | 奇米线在人线免费视频 | 国产在视频线精品视频www666 | 91中文字幕在线一区 | 国产午夜精品一区二区三区嫩草 | 新婚人妻不戴套国产精品 | 91国在线国内在线播放 | 欧美一级毛片免费播放器 | 国产小视频在线 | 久久夜视频 | 久久电影精品久久99久久 | 成人黄色片网站 | 日韩福利视频导航 | 香蕉久久一区二区不卡无毒影院 | 热99这里只有精品 | 一级毛片欧美 | 999av视频 | 波多野结衣在线观看一区 | 欧美区一区二区三 | 天天做天天爱天天爽综合区 | 欧美乱大交xxxx | 老司机免费福利视频无毒午夜 | 日本三级香港三级乳网址 | 999精品久久久 | 能看的av网站 | 久久精品二区 |