好好学python · 字典
生活随笔
收集整理的這篇文章主要介紹了
好好学python · 字典
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
字典
- 數(shù)據(jù)類型詳解-字典
- 字典的定義
- 字典的操作
- 成員檢測和獲取
- 字典的遍歷
- 字典的相關(guān)函數(shù)
- 字典推導(dǎo)式
數(shù)據(jù)類型詳解-字典
字典是由鍵值對組成的數(shù)據(jù)集合,字典中的鍵不能重復(fù)
字典中的鍵必須是不可變的數(shù)據(jù)類型,常用的鍵主要是:字符串,整型等
字典的定義
- 字典可以通過將以逗號分隔的 鍵: 值 對列表包含于花括號之內(nèi)來創(chuàng)建字典
- 也可以通過 dict 構(gòu)造器來創(chuàng)建
字典的操作
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ù)了,會被覆蓋 # var1['aa'] = 'aa'成員檢測和獲取
# 三 成員檢測和獲取 ,只能檢測key,不能檢測value res = 'AA' in var1 res = 'AA' not in var1# 獲取當(dāng)前字典的長度 只能檢測當(dāng)前又多少個鍵值對 res = len(var1)# 獲取當(dāng)前字典中的所有 key 鍵 res = var1.keys() # 獲取字典中所有的 value 值 res = var1.values() # 獲取當(dāng)前字典中所有 鍵值對 res = var1.items()字典的遍歷
# 四, 對字典進行遍歷 # (1)在遍歷當(dāng)前的字典時,只能獲取當(dāng)前的key for i in var1:print(i) # 只能獲取 keyprint(var1[i]) # 通過字典的key獲取對應(yīng)value#(2)遍歷字典時,使用 items() 函數(shù),可以在遍歷中獲取key和value for k,v in var1.items():print(k) # 遍歷時的 keyprint(v) # 遍歷時的 valueprint('===='*20) # (3) 遍歷字典的所有key for k in var1.keys():print(k)print('===='*20) # (4) 遍歷字典的所有 value for v in var1.values():print(v)字典的相關(guān)函數(shù)
# 字典相關(guān)函數(shù)# len(字典) #獲取字典的鍵值對個數(shù) # dict.keys() # 獲取當(dāng)前字典的所有key 鍵,組成的列表 # dict.values() # 獲取當(dāng)前字典的所有 value 值,組成的列表 # dict.items() # 返回由字典項 ((鍵, 值) 對) 組成的一個新視圖 # iter(d) 返回以字典的鍵為元素的迭代器。vardict = {'a':1,'b':2,'c':3}# dict.pop(key) # 通過 key 從當(dāng)前字典中彈出鍵值對 刪除 # res = vardict.pop('a')# dict.popitem() LIFO: Last in, First out.后進先出 # res = vardict.popitem() # 把最后加入到字典中的鍵值對刪除并返回一個元組# 使用key獲取字典中不存在元素,會報錯 # print(vardict['aa']) # 可以使用get獲取一個元素,存在則返回,不存在默認(rèn)返回None # res = vardict.get('aa') # res = vardict.get('aa','abc')# dict.update(),更新字典,如果key存在,則更新,對應(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)式
# 把字典中的鍵值對位置進行交換 {'a':1,'b':2,'c':3} vardict = {'a':1,'b':2,'c':3}# 普通方法實現(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é)果是一個集合,集合推導(dǎo)式 # newdict = {v for k,v in vardict.items()} # print(newdict,type(newdict))# 把以下字典中的是偶數(shù)的值,保留下來,并且交換鍵值對的位置 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)總結(jié)
以上是生活随笔為你收集整理的好好学python · 字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好好学python · 元组
- 下一篇: 好好学python·集合