Python基础教程:字典(当索引不好用时)
一.定義與概念
1.字典是針對非序列集合而提供的一種數(shù)據(jù)類型
舉例:檢索學(xué)生信息。
“<鍵><值>對”。
鍵(即身份證號碼) 值(即學(xué)生信息)。
“鍵值對”例子
姓名和電話號碼
用戶名和密碼
國家名稱和首都等。
通過任意鍵信息查找一組數(shù)據(jù)中值信息的過程叫映射,Python語言中通過字典實(shí)現(xiàn)映射。
Python語言中的字典可以通過大括號{ }建立,建立模式如下: {<鍵1>:<值1>, <鍵2>:<值2>, … , <鍵n>:<值n>} 其中,鍵和值通過冒號連接,不同鍵值對通過逗號隔開。 字典是鍵值對的無序可變集合。
字典中的每個(gè)元素包含兩部分:鍵和值,向字典添加一個(gè)鍵的同時(shí),必須為該鍵增添一個(gè)值。
字典中的鍵可以為任意不可變數(shù)據(jù),比如整數(shù)、實(shí)數(shù)、復(fù)數(shù)、字符串、元組等等。
字典中的鍵不允許重復(fù)。
例
Dcountry={ "中國":"北京","美國": "華盛頓","法國":"巴黎"} print (Dcountry)#結(jié)果: {'法國':'巴黎','美國':'華盛頓','中國': '北京'}字典打印出來的順序與創(chuàng)建之初的順序不同,這不是錯(cuò)誤。字典是集合類型的延續(xù),各個(gè)元素并沒有順序之分。
字典主要的用法是查找與特定鍵相對應(yīng)的值,通過索引符號來實(shí)現(xiàn)。
Dcountry["中國"] '北京'一般來說,字典中鍵值對的訪問模式如下,采用中括號格式: <值> = <字典變量>[<鍵>] 字典中對某個(gè)鍵值的修改可以通過中括號的訪問和賦值實(shí)現(xiàn):
Dcountry["中國"]='大北京'print(Dcountry) {'中國': '大北京', '法國': '巴黎', '美國': '華盛頓'}2.字典類型與序列類型的區(qū)別:
存取和訪問方式不同
鍵的類型不同 序列類型只能用數(shù)字類型的鍵(下標(biāo)) 字典類型可以用其他對象類型作鍵
排列方式不同 序列類型保持了元素的相對關(guān)系 而字典中的數(shù)據(jù)是無序排列的
映射方式不同 序列類型通過地址映射到值 字典類型通過鍵直接映射到值
二.字典的操作
1.創(chuàng)建于刪除
使用=將一個(gè)字典賦值給一個(gè)變量
使用內(nèi)置函數(shù)dict()利用已有數(shù)據(jù)創(chuàng)建字典
使用dict根據(jù)給定的鍵-值對創(chuàng)建字典 以給定內(nèi)容為鍵,創(chuàng)建值為空的字典(fromkeys)
使用del刪除整個(gè)字典
2.基本操作方法
| <d>.keys() | 返回所有的鍵信息 |
| <d>.values() | 返回所有的值信息 |
| <d>.items() | 返回所有的鍵值對 |
| <d>.get(<key>,<default>) | 鍵存在則返回相應(yīng)值,否則返回默認(rèn)值;鍵存在則返回相應(yīng)值,同時(shí)刪除鍵值對, |
| <d>.pop(<key>,<default>) | 否則返回默認(rèn)值 |
| <d>.popitem() | 隨機(jī)從字典中取出一個(gè)鍵值對,以元組(key, value)形式返回 |
| <d>.clear() | 刪除所有的鍵值對 |
| del <d>[<key>] | 刪除字典中某一個(gè)鍵值對 |
| <key> in <d> | 如果鍵在字典中返回True,否則返回False |
3.元素的讀取
以鍵作為下標(biāo)可以讀取字典元素,若鍵不存在則拋出異常
使用字典對象的get方法獲取指定鍵對應(yīng)的值,并且可以在鍵不存在的時(shí)候返回指定值。
使用字典對象的items方法可以返回字典的鍵、值對列表
使用字典對象的keys方法可以返回字典的鍵列表
使用字典對象的values方法可以返回字典的值列表
4.元素的添加與修改
當(dāng)以指定鍵為下標(biāo)為字典賦值時(shí),若鍵存在,則可以修改該鍵的值;若不存在,則表示添加一個(gè)鍵、值對。
使用字典對象的update方法將另一個(gè)字典的鍵、值對添加到當(dāng)前字典對象
使用del刪除字典中指定鍵的元素
使用字典對象的clear方法來刪除字典中所有元素
使用字典對象的pop方法刪除并返回指定鍵的元素
使用字典對象的popitem方法刪除并返回字典中的任意一個(gè)元素
5.字典元素的遍歷
與其他組合類型一樣,字典可以通過for…in語句對其元素進(jìn)行遍歷,基本語法結(jié)構(gòu)如下:
for <變量名> in <字典名>: 語句塊
for key in Dcountry:print(key)中國美國法國遍歷字典的鍵
key for key in dictionaryName.keys():print(key)遍歷字典的值
value for value in dictionaryName.values():print(value)遍歷字典的項(xiàng)
for item in dicitonaryName.items():print(item)遍歷字典的鍵值對
key-value for key,value in dicitonaryName.items():print(key, value)字典是實(shí)現(xiàn)鍵值對映射的數(shù)據(jù)結(jié)構(gòu),請理解如下基本原則:
字典是一個(gè)鍵值對的集合,該集合以鍵為索引,一個(gè)鍵信息只對應(yīng)一個(gè)值信息;
字典中元素以鍵為索引訪問;
字典長度是可變的,可以通過對鍵信息賦值實(shí)現(xiàn)增加或修改鍵值對。
三.操作實(shí)例
1.首先生成包含1000個(gè)隨機(jī)字符的字符串,然后統(tǒng)計(jì)每個(gè)字符的出現(xiàn)次數(shù)。
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! '''import string import randomx = string.ascii_letters y = ''.join((random.choice(x) for i in range(1000))) d = dict() for ch in y:d[ch] = d.get(ch,0)+1 dd = sorted(d.items(), key=lambda item:item[1], reverse=True)#排序 print(dd[:3])#打印出排名前三的四.字典與json的異同
發(fā)現(xiàn)字典和web前端中的json有點(diǎn)像。接下來比較一下兩者的異同。
字典結(jié)構(gòu):
json數(shù)據(jù)形式:
從形式上看,都是“Key:Value”的形式。
但是從本質(zhì)上講,字典是一種數(shù)據(jù)結(jié)構(gòu),而json是一種格式;字典有很多內(nèi)置函數(shù),有多種調(diào)用方法,而json是數(shù)據(jù)打包的一種格式,并不像字典具備操作性,并且是格式就會有一些形式上的限制,比如json的格式要求必須且只能使用雙引號作為key或者值的邊界符號,不能使用單引號,而且“key”必須使用邊界符(雙引號),但字典就無所謂了。
Python中提供了json.load()轉(zhuǎn)換函數(shù),方便json數(shù)據(jù)的調(diào)用。
總結(jié)
以上是生活随笔為你收集整理的Python基础教程:字典(当索引不好用时)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5道Python函数练习
- 下一篇: python基础教程:函数装饰器详解