Python數(shù)據(jù)類(lèi)型詳解-字典#學(xué)習(xí)猿地

### 數(shù)據(jù)類(lèi)型詳解-字典

> 字典也是一種數(shù)據(jù)的集合,由鍵值對(duì)組成的數(shù)據(jù)集合纲岭,字典中的鍵不能重復(fù)

>

> 字典中的鍵必須是不可變的數(shù)據(jù)類(lèi)型拥刻,常用的鍵主要是:字符串怜瞒,整型父泳。般哼。。

### 字典的定義

+ 字典可以通過(guò)將以逗號(hào)分隔的 `鍵: 值` 對(duì)列表包含于花括號(hào)之內(nèi)來(lái)創(chuàng)建字典

+ 也可以通過(guò) [`dict`](https://docs.python.org/zh-cn/3.7/library/stdtypes.html#dict) 構(gòu)造器來(lái)創(chuàng)建

?`{'jack': 4098, 'sjoerd': 4127}` 或 `{4098: 'jack', 4127: 'sjoerd'}`

```python

# 1惠窄。 使用{}定義

vardict = {'a':1,'b':2,'c':2}

# 2蒸眠。 使用 dict(key=value,key=value) 函數(shù)進(jìn)行定義

vardict = dict(name='zhangsan',sex='男',age=22)

# 3。 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換?dict(二級(jí)容器類(lèi)型) 列表或元組杆融,并且是二級(jí)容易才可以轉(zhuǎn)換

vardict = dict([['a',1],['b',2],['c',3]])?# {'a': 1, 'b': 2, 'c': 3}

# 4楞卡。zip壓縮函數(shù),dict轉(zhuǎn)類(lèi)型

var1 = [1,2,3,4]

var2 = ['a','b','c','d']

# 轉(zhuǎn)換的原理和上面的第三種 是一個(gè)原理

vardict = dict(zip(var1,var2))?# {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

print(vardict)

```

### 字典的操作

```python

var1 = {'a': 1, 'b': 2, 'c': 3}

var2 = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

# res = var1 +?var2 # XXXX?TypeError

# res = var1 * 3 # xxxx TypeError

# 獲取元素

res = var1['a']

# 修改元素

res = var1['a'] = 111

# 刪除元素

del var1['a']

# 添加元素

var1['aa'] = 'AA'

# 如果字典中的key重復(fù)了脾歇,會(huì)被覆蓋

# var1['aa'] = 'aa'

```

### 成員檢測(cè)和獲取

```python

# 三 成員檢測(cè)和獲取?,只能檢測(cè)key蒋腮,不能檢測(cè)value

res = 'AA' in var1

res = 'AA' not in var1

# 獲取當(dāng)前字典的長(zhǎng)度 只能檢測(cè)當(dāng)前又多少個(gè)鍵值對(duì)

res = len(var1)

# 獲取當(dāng)前字典中的所有 key 鍵

res = var1.keys()

# 獲取字典中所有的 value 值

res = var1.values()

# 獲取當(dāng)前字典中所有 鍵值對(duì)

res = var1.items()

```

### 字典的遍歷

```python

# 四, 對(duì)字典進(jìn)行遍歷

# (1)在遍歷當(dāng)前的字典時(shí)藕各,只能獲取當(dāng)前的key

for i in var1:

??print(i) # 只能獲取 key

??print(var1[i]) # 通過(guò)字典的key獲取對(duì)應(yīng)value

#(2)遍歷字典時(shí)池摧,使用 items() 函數(shù),可以在遍歷中獲取key和value

for k,v in var1.items():

??print(k)?# 遍歷時(shí)的 key

??print(v)?# 遍歷時(shí)的 value

print('===='*20)

# (3) 遍歷字典的所有key

for k in var1.keys():

??print(k)

print('===='*20)

# (4) 遍歷字典的所有 value

for v in var1.values():

??print(v)

```

### 字典的相關(guān)函數(shù)

```python

#?字典相關(guān)函數(shù)

# len(字典) #獲取字典的鍵值對(duì)個(gè)數(shù)

# dict.keys() # 獲取當(dāng)前字典的所有key 鍵激况,組成的列表

# dict.values() # 獲取當(dāng)前字典的所有 value 值作彤,組成的列表

# dict.items() # 返回由字典項(xiàng) ((鍵, 值) 對(duì)) 組成的一個(gè)新視圖

# iter(d) 返回以字典的鍵為元素的迭代器。

vardict = {'a':1,'b':2,'c':3}

# dict.pop(key) # 通過(guò) key 從當(dāng)前字典中彈出鍵值對(duì)?刪除

# res = vardict.pop('a')

# dict.popitem()??LIFO: Last in, First out.后進(jìn)先出

# res = vardict.popitem()?# 把最后加入到字典中的鍵值對(duì)刪除并返回一個(gè)元組

# 使用key獲取字典中不存在元素乌逐,會(huì)報(bào)錯(cuò)

# print(vardict['aa'])

# 可以使用get獲取一個(gè)元素竭讳,存在則返回,不存在默認(rèn)返回None

# res = vardict.get('aa')

# res = vardict.get('aa','abc')

# dict.update(),更新字典,如果key存在浙踢,則更新绢慢,對(duì)應(yīng)的key不存在則添加

# vardict.update(a=11,b=22)

# vardict.update({'c':33,'d':44})

# dict.setdefault(key[,default])

# 如果字典存在鍵 key ,返回它的值洛波。

# 如果不存在胰舆,插入值為 default 的鍵 key ,并返回 default 奋岁。

# default 默認(rèn)為 None思瘟。

res = vardict.setdefault('aa','123')

print(res)

print(vardict)

```

### 字典推導(dǎo)式

```python

# 把字典中的鍵值對(duì)位置進(jìn)行交換 {'a':1,'b':2,'c':3}

vardict = {'a':1,'b':2,'c':3}

# 普通方法實(shí)現(xiàn) 字典中的鍵值交換?{1: 'a', 2: 'b', 3: 'c'}

newdict = {}

for k,v in vardict.items():

??newdict[v] = k

# print(newdict)

# 使用字典推導(dǎo)式完成?{1: 'a', 2: 'b', 3: 'c'}

newdict = {v:k for k,v in vardict.items()}

# print(newdict)

# 注意:以下推導(dǎo)式,返回的結(jié)果是一個(gè)集合闻伶,集合推導(dǎo)式

# newdict = {v for k,v in vardict.items()}

# print(newdict,type(newdict))

# 把以下字典中的是偶數(shù)的值滨攻,保留下來(lái),并且交換鍵值對(duì)的位置

vardict = {'a':1,'b':2,'c':3,'d':4}

# 普通方式完成?{2: 'b', 4: 'd'}

# newdict = {}

# for k,v in vardict.items():

#???if v % 2 == 0:

#?????newdict[v] = k

# print(newdict)

# 字典推導(dǎo)式完成?{2: 'b', 4: 'd'}

newdict = {v:k for k,v in vardict.items() if v % 2 == 0}

# print(newdict)

```

掌握學(xué)習(xí)方法,不如會(huì)彎道超車(chē)光绕!

學(xué)習(xí)猿地:成就自己的只需一套精品女嘲!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诞帐,隨后出現(xiàn)的幾起案子欣尼,更是在濱河造成了極大的恐慌,老刑警劉巖停蕉,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愕鼓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡慧起,警方通過(guò)查閱死者的電腦和手機(jī)菇晃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚓挤,“玉大人磺送,你說(shuō)我怎么就攤上這事〔右猓” “怎么了估灿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)缤剧。 經(jīng)常有香客問(wèn)我馅袁,道長(zhǎng),這世上最難降的妖魔是什么鞭执? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任司顿,我火速辦了婚禮,結(jié)果婚禮上兄纺,老公的妹妹穿的比我還像新娘大溜。我一直安慰自己,他們只是感情好估脆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布钦奋。 她就那樣靜靜地躺著,像睡著了一般疙赠。 火紅的嫁衣襯著肌膚如雪付材。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天圃阳,我揣著相機(jī)與錄音厌衔,去河邊找鬼。 笑死捍岳,一個(gè)胖子當(dāng)著我的面吹牛富寿,可吹牛的內(nèi)容都是我干的睬隶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼页徐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼苏潜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起变勇,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恤左,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后搀绣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體飞袋,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年豌熄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了授嘀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片物咳。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锣险,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出览闰,到底是詐尸還是另有隱情芯肤,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布压鉴,位于F島的核電站崖咨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏油吭。R本人自食惡果不足惜击蹲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婉宰。 院中可真熱鬧歌豺,春花似錦、人聲如沸心包。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟹腾。三九已至痕惋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娃殖,已是汗流浹背值戳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炉爆,地道東北人堕虹。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓柿隙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鲫凶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禀崖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容