python-字典

字典

1、 字典spa

1.、 列表能夠存儲大量的數據類型,可是若是數據量大的話,他的查詢速度比較慢。code

2.、 列表只能按照順序存儲,數據與數據之間關聯性不強。對象

因此針對於上的缺點,須要引入另外一種容器型的數據類型,解決上面的問題,這就須要dict字典。blog

 

不可變(可哈希)的數據類型:int,str,bool,tuple。排序

  可變(不可哈希)的數據類型:list,dict,set。three

字典是Python語言中的映射類型,他是以{}括起來,裏面的內容是以鍵值對的形式儲存的:ip

    Key: 不可變(可哈希)的數據類型.而且鍵是惟一的,不重複的。內存

    Value:任意數據(int,str,bool,tuple,list,dict,set),包括後面要學的實例對象等。get

 在Python3.5版本(包括此版本)以前,字典是無序的。it

 在Python3.6版本以後,字典會按照初建字典時的順序排列(即第一次插入數據的順序排序)。

 固然,字典也有缺點:他的缺點就是內存消耗巨大。

2、 建立:

# 方式1:
dic = dict((('one', 1),('two', 2),('three', 3)))

# dic = dict([('one', 1),('two', 2),('three', 3)])

print(dic)  # {'one': 1, 'two': 2, 'three': 3}

 

# 方式2:
dic = dict(one=1,two=2,three=3)

print(dic)  # {'one': 1, 'two': 2, 'three': 3}

 

# 方式3:
dic = dict({'one': 1, 'two': 2, 'three': 3})

print(dic)  # {'one': 1, 'two': 2, 'three': 3}

 


# 方式5: 後面會講到先了解
dic = dict(zip(['one', 'two', 'three'],[1, 2, 3]))

print(dic)

 

# 方式6: 字典推導式 後面會講到
dic = { k: v for k,v in [('one', 1),('two', 2),('three', 3)]}

print(dic)

 

# 方式7:利用fromkey。
dic = dict.fromkeys('abcd','太白')

print(dic)  # {'a': '太白', 'b': '太白', 'c': '太白', 'd': '太白'}

3、 增

     一、 經過鍵值對直接增長

dic = {'name': '太白', 'age': 18}

dic['weight'] = 75 # 沒有weight這個鍵,就增長鍵值對

print(dic) # {'name': '太白', 'age': 18, 'weight': 75}

dic['name'] = 'barry' # 有name這個鍵,就成了字典的改值

print(dic) # {'name': 'barry', 'age': 18, 'weight': 75}

二、 setdefault

dic = {'name': '太白', 'age': 18}

dic.setdefault('height',175) # 沒有height此鍵,則添加

print(dic) # {'name': '太白', 'age': 18, 'height': 175}

dic.setdefault('name','barry') # 有此鍵則不變

print(dic) # {'name': '太白', 'age': 18, 'height': 175}

#它有返回值

dic = {'name': '太白', 'age': 18}

ret = dic.setdefault('name')

print(ret)  # 太白

4、 刪

一、 pop 經過key刪除字典的鍵值對,有返回值,可設置返回值。

dic = {'name': '太白', 'age': 18}

# ret = dic.pop('name')

# print(ret,dic) # 太白 {'age': 18}

ret1 = dic.pop('n',None)

print(ret1,dic) # None {'name': '太白', 'age': 18}

二、 popitem 3.5版本以前,popitem爲隨機刪除,3.6以後爲刪除最後一個,有返回值

dic = {'name': '太白', 'age': 18}

ret = dic.popitem()

print(ret,dic) # ('age', 18) {'name': '太白'}

三、 clear 清空字典

dic = {'name': '太白', 'age': 18}

dic.clear()

print(dic) # {}

四、 del 經過鍵刪除鍵值對

dic = {'name': '太白', 'age': 18}

del dic['name']

print(dic) # {'age': 18}

五、 刪除整個字典

del dic

5、 改

一、 經過鍵值對直接改

dic = {'name': '太白', 'age': 18}

dic['name'] = 'barry'

print(dic) # {'name': 'barry', 'age': 18}

二、 update

dic = {'name': '太白', 'age': 18}

dic.update(sex='', height=175)

print(dic) 

# {'name': '太白', 'age': 18, 'sex': '男', 'height': 175}



dic = {'name': '太白', 'age': 18}

dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')])

print(dic) 

# {'name': '太白', 'age': 18, 1: 'a', 2: 'b', 3: 'c', 4: 'd'}



dic1 = {"name":"jin","age":18,"sex":"male"}

dic2 = {"name":"alex","weight":75}

dic1.update(dic2)

print(dic1) 

# {'name': 'alex', 'age': 18, 'sex': 'male', 'weight': 75}

print(dic2) # {'name': 'alex', 'weight': 75}

6、 查

一、 經過鍵查詢 直接dic[key](沒有此鍵會報錯)

dic = {'name': '太白', 'age': 18}

print(dic['name']) # 太白

二、 get

dic = {'name': '太白', 'age': 18}

v = dic.get('name')

print(v) # '太白'

v = dic.get('name1')

print(v) # None

v = dic.get('name2','沒有此鍵')

print(v) # 沒有此鍵

三、 keys()

dic = {'name': '太白', 'age': 18}

print(dic.keys()) 

# dict_keys(['name', 'age'])

四、 values()

dic = {'name': '太白', 'age': 18}

print(dic.values()) 

# dict_values(['太白', 18])

五、 items()

dic = {'name': '太白', 'age': 18}

print(dic.items()) 

# dict_items([('name', '太白'), ('age', 18)])
相關文章
相關標籤/搜索