字典及相關操作

想吃橙子發表於2019-03-06

字典

字典的意義:

列表的缺點

列表如果儲存的資料較多,那麼它的查詢速度會相對變慢

列表儲存的資料關聯性不強

什麼是字典:

python的基本資料型別之一:字典

python中唯一的對映類的資料,格式為用花括號 { } 括起來

字典是以鍵值對形式儲存,每一對鍵值對以逗號隔開

{'name':'太白金星','age':'18','sex':'man'}

字典是以鍵值對形式儲存的

鍵:不重複的,唯一的。鍵的資料型別必須是不可變的資料型別

值:任意儲存型別,物件

字典可以儲存大量鍵值對資料

python3.6之前,包括3.5,字典的排序都是無序的

python3.6之後,字典強行變成有序的

字典的優點

字典可以儲存大量的關係型資料

字典的查詢速度非常快

字典的增刪改查

dic = {'name','太白金星','age','18','hobby','wife'}

增:

1.有則修改,無則新增

dic['hight'] = 176       新增一個鍵值對

dic['age'] = 23           把字典中的age對應的值修改為23

2.有則不變,無則新增

dic.setdefault('weight')                dic = {'name','太白金星','age','18','hobby','wife','weight':None}

dic.setdefault('weight',160)         dic = {'name','太白金星','age','18','hobby','wife','weight':160}

pop       

按照鍵刪除

ret = dic.pop('age')                按照鍵刪除掉鍵值對

ret = dic.pop('age1')              沒有對應的鍵不會報錯   有返回語  不經過設定一般是None

可以設定提示語

ret = dic.pop('age1','沒有此鍵')

clear

清空

dic.clear()

print(dic)

popitem

python3.6版本之後命令為刪除最後一個j鍵值對,3.6版本之前命令為隨即刪除一個鍵值對

ret = dic.popitem()

print(ret)

print(dic)

del

用法跟在列表時相似

del dic['name']   按照鍵刪除鍵值對

del dic['name2']  沒有相應鍵值會報錯

del dic        刪除整個字典

改:

dic['age'] = 30     同增的辦法,無則新增,有則修改

update

dic.update(car = '逍客',money = 13000)

可以批量新增鍵值對到字典裡

還可以將一個字典覆蓋到另一個字典裡

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

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

dic2.update(dic)

將dic裡面的鍵值對覆蓋新增到dic2中

print(dic) {'name': 'jin', 'age': 18, 'sex': 'male'}

print(dic2) {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

查:

1.相對不好的方式

print(dic['age'])

print(dic['age1'])  如果沒有此鍵會報錯

2.get

print(dic.get('age'))

沒有此鍵預設返回None

print(dic.get('age1'))

可以設定返回值

print(dic.get('age1', '沒有此鍵'))

字典的for迴圈

dic = {'name','太白金星','age','18','hobby','wife'}

for i in dic:

print(i)

 

dic.keys()   列印出所有的鍵

dic.values()    列印出所有的值

dic.items()   列印出所有的鍵和值

可以用for迴圈列印出所偶的鍵 所有的值 所有的鍵和值

都可以轉化為list

ret = dic.keys()

print(list(ret))

 

a = 18

b = 32

a, b = b, a

print(a,b)

 

print(dic.items())

for k,v in dic.items():     利用分別賦值

    print('這是鍵:', k)

    print('這是值:', v)

 

字典的巢狀

dic = {
'name_list': ['博哥', '菊哥', 'b哥', 'alex'],
'barry': {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
}

1,給這個列表['博哥', '菊哥', 'b哥', 'alex'] 追加一個元素 '老男孩'
l1 = dic['name_list']
# print(l1)
l1.append('老男孩')
print(dic)

簡寫;
dic['name_list'].append('老男孩')
print(dic)
2,將這個列表['博哥', '菊哥', 'b哥', 'alex']中的alex變成首字母大寫。
print(dic['name_list'][-1].capitalize())
dic['name_list'][-1] = dic['name_list'][-1].capitalize()
print(dic)
3,將這個鍵值對 'name': '太白金星' 的 '太白金星' 改成男神。
先通過dic 找到小字典
print(dic['barry'])
在通過小字典將name 對應的值更改
dic['barry']['name'] = '男神'
print(dic)
4,給barry對應的小字典增加一個鍵值對: weight: 160
dic['barry']['weight'] = 150
print(dic)

另加
按資料型別的的劃分
容器型與非容器型劃分:
容器型資料型別: list tuple dict set
非容器型資料型別: int str bool
按可變與不可變劃分:
可變(不可雜湊)的資料型別 : list dict set
不可變(可雜湊)的資料型別: int str bool tuple

相關文章