Python學習之路--dict

dict {key:value}

鍵值對,映射類型app

dict中的key,必須是不可變數據類型,可哈希ide

             value:任意數據類型spa

數據類型劃分:可變數據類型,不可變數據類型

不可變數據類型:不可更改,元組,bool,int,str   可哈希code

可變數據類型:列表list,字典dict                             不可哈希blog

優勢:二分查找查詢get

           存儲大量的關係型數據it

特色:3.5以前無序event

dic = {
    'name': ['大門', '小明'],
    'py': [{'人數': '70', 'avg': '18'}],
    True: 1,
    (1, 2, 3): 'wuli',
     2:'eref',
}
print(dic)
#{'name': ['大門', '小明'], 'py': [{'人數': '70', 'avg': '18'}], True: 1, (1, 2, 3): 'wuli', 2: 'eref'}
View Code

增長

dict1 ={'age': 18, 'name': 'r', 'sex':'femal' }
dict1['high'] = 155 #沒有鍵值對,添加
print(dict1)
dict1['age'] = 16  #有鍵,則覆蓋
print(dict1)
'''
{'age': 18, 'name': 'r', 'sex': 'femal', 'high': 155}
{'age': 16, 'name': 'r', 'sex': 'femal', 'high': 155}
'''
View Code

setdefault()有鍵值,不作改變,沒有,增長class

#{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': None}
dict1.setdefault('weight',150)
#{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150}
dict1.setdefault('name','dh')
print(dict1)
#{'age': 18, 'name': 'r', 'sex': 'femal', 'weight': 150}
View Code

刪除

pop() 有返回值,按鍵刪除cli

print(dict1.pop('age'))
print(dict1)
# 18
# {'name': 'r', 'sex': 'femal'}
print(dict1.pop('bsjh','沒有此鍵'))  #若不知道字典裏有沒有此鍵,則加個參數
print(dict1)
# 沒有此鍵
# # {'name': 'r', 'sex': 'femal'}
View Code

popitem()隨機刪除,有返回值

dict1.popitem()
print(dict1)
#{'age': 18, 'name': 'r'}
View Code

clear()清空

del(‘key’)/dict

修改

dict1['age']=18

update() 把一個字典,覆蓋更新到目標字典中

dict2 ={ 'name': 'r', 'weight':'75' }
dic ={'age': 18, 'name': 'r', 'sex':'femal'}
dict2.update(dic)
print(dic)
print(dict2)
# {'age': 18, 'name': 'r', 'sex': 'femal'}
# {'name': 'r', 'weight': '75', 'age': 18, 'sex': 'femal'}
View Code

查詢

print(dict1.keys())
print(dict1.values())
print(dict1.items())

dict_keys(['age', 'name', 'sex'])
dict_values([18, 'r', 'femal'])
dict_items([('age', 18), ('name', 'r'), ('sex', 'femal')])

for i in dict1:  #for i in dict1.keys():
    print(i)
'''age
name
sex'''
for i in dict1.values():
    print(i)
'''18
r
femal'''
for i in dict1.items():
    print(i)
'''('age', 18)
('name', 'r')
('sex', 'femal')'''
View Code
for k,v in dict1.items():
    print(k,v)
# age 18
# name r
# sex femal
View Code
v1 =dict1['name']
print(v1)
print(dict1.get('name'))
print(dict1.get('name1','NNN'))
# r
# r
# NNN
View Code

嵌套

dic = {
    'name': ['alex','wusir','taibai'],
    'py9':{
        'time':'1213',
        'learn_money':19800,
        'address':'CBD'
    },
    'age':21
}
dic['age'] = 56
dic['name'].append('ritian')
print(dic)
{'name': ['alex', 'wusir', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 56}


dic['name'][1] = dic['name'][1].upper()
print(dic)
#{'name': ['alex', 'WUSIR', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD'}, 'age': 21}



dic['py9']['famel'] = 6
print(dic)
#{'name': ['alex', 'wusir', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'address': 'CBD', 'famel': 6}, 'age': 21}
View Code

 

 

小結

dict: dict={'name:'alex'}

增: dict[‘age’]=21 存在就覆蓋

dic.setdefault()沒有就增長

 

刪除:pop()按key刪除,有返回值

           clear()

          del dic['name']

           popitem()隨機刪除,返回時元組

改:update

查:

dic.keys() 鍵

dic.values() 值

dic.items() 鍵值對

for k,v in dic.items():

    print(k,v)

get

dc.get(key,None)

相關文章
相關標籤/搜索