字典
字典:
字典是python中唯一的映射類型,采用鍵值對(duì)(key-value)的形式存儲(chǔ)數(shù)據(jù)。python對(duì)key進(jìn)行哈希函數(shù)運(yùn)算,根據(jù)計(jì)算的結(jié)果決定value的存儲(chǔ)地址,所以字典是無序存儲(chǔ)的,且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數(shù)字、字符串、元組。
字典(dictionary)是除列表意外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對(duì)象結(jié)合,字典是無序的對(duì)象集合。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
2.6.1、增。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'} # dic['sex'] = 'LaddyBoy'
# dic['name'] = 'Alex' 有則覆蓋,沒有就添加
# dic.setdefault('sex') 在字典中添加鍵值對(duì),如果只有鍵,那對(duì)應(yīng)的值是None
# dic.setdefault('sex', 'Laddyboy') 有則不變,無則添加。
# dic.setdefault('name', 'alex')
# print(dic)
dic.setdefault(k,v)有返回值,字典中有k,返回字典中的v,字典中沒k,返回添加的v
2.6.2、刪。
# print(dic.pop('age')) # 有返回值,返回的是鍵對(duì)應(yīng)的值
# print(dic.pop('age1', '沒有此鍵...')) 沒有對(duì)應(yīng)的鍵,返回‘沒有此鍵...’
# print(dic)
# dic.clear() #清空字典
# print(dic)
# print(dic.popitem()) # 隨機(jī)刪除,有返回值,返回值為元組,里面是刪除的鍵值對(duì)。
# print(dic)
# del
# 1,刪除整個(gè)字典
# del dic
# 2,按照鍵刪除鍵值對(duì)
# del dic['name']
# print(dic)
# dic_pop = dic.pop("a",'無key默認(rèn)返回值') # pop根據(jù)key刪除鍵值對(duì),并返回對(duì)應(yīng)的值,如果沒有key則返回默認(rèn)返回值
# print(dic_pop)
# del dic["name"] # 沒有返回值。
# print(dic)# dic_pop1 = dic.popitem() # 隨機(jī)刪除字典中的某個(gè)鍵值對(duì),將刪除的鍵值對(duì)以元祖的形式返回
# print(dic_pop1) # ('name','jin')# dic_clear = dic.clear() # 清空字典
# print(dic,dic_clear) # {} None 2.6.3、改。
# 1, dic['name'] = 'Alex' 有則覆蓋,沒有就添加
# update 兩個(gè)字典的更新
# dic = {"name": "jin", "age": 18, "sex": "male"}
# dic2 = {"name": "alex", "weight": 75}
# dic2.update(dic) # 將dic里面的所有鍵值對(duì) 覆蓋添加到dic2中,dic不變
# print(dic) # {'name': 'jin', 'age': 18, 'sex': 'male'}
# print(dic2) # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
# 改
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic) # 將dic所有的鍵值對(duì)覆蓋添加(相同的覆蓋,沒有的添加)到dic2中
# print(dic2) 2.6.4、查。
# 1,dic['name']
# print(dic['name']) 有,找到;沒有,報(bào)錯(cuò)
# 2,dic.get('name')
# print(dic.get('name')) 有,找到
# print(dic.get('name1')) 沒有,None
# print(dic.get('name1', 'sb沒有此鍵')) 沒有,sb沒有此鍵
# for循環(huán)查詢
# dic.keys(), dic.values(), dic.items() # 類似于list但不是list的類型。
# print(dic.keys(),type(dic.keys())) dict_keys(['name', 'age', 'hobby']) <class 'dict_keys'>
# for key in dic.keys():
# print(key) 鍵循環(huán)
# l_key = list(dic.keys())
# print(l_key) ['name', 'age', 'hobby']
# for value in dic.values():
# print(value) 值循環(huán)
print(dic.items()) dict_items([('name', '老男孩'), ('age', 56), ('hobby', 'women')]) # value1 = dic["name"] # 沒有會(huì)報(bào)錯(cuò)
# print(value1)
#
# value2 = dic.get("djffdsafg","默認(rèn)返回值") # 沒有可以返回設(shè)定的返回值
# print(value2) 2.6.5、其他操作。
# 分別賦值概念
# a, b = 1, 2
# a, b = ('alex', '34')
# a, b = ['alex', '34']
# 有 如下 a = 1 b = 3,用一行代碼將a b值互換。
# a = 1
# b = 3
# a, b = b, a
# k,v = ('name', '老男孩')
# for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
# print(k,v) name 老男孩
age 56
hobby women # item = dic.items()
# print(item,type(item)) # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'>
# 這個(gè)類型就是dict_items類型,可迭代的# keys = dic.keys()
# print(keys,type(keys)) # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'># values = dic.values()
# print(values,type(values)) # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上 字典的循環(huán)。
# dic = {"name":"jin","age":18,"sex":"male"}
# for key in dic:
# print(key)
# for item in dic.items():
# print(item)
# for key,value in dic.items():
# print(key,value)
轉(zhuǎn)載于:https://www.cnblogs.com/molieren/p/9140049.html
總結(jié)
- 上一篇: 悬梁刺股的作者是谁啊?
- 下一篇: 关于rtsp的时间戳问题