1. 程式人生 > >python基礎5.1

python基礎5.1

一  字典

1 字典的定義

字典是一個無序的,可修改的,元素呈鍵值對的形式,以逗號分割的,以大括號包圍的序列;

字典是python基礎資料型別當中唯一一個對映關係的資料型別;

由於字典無序,所以我們定義字典和字典生成之後的元素順序是不同的;

dic = {key:value,key1:value,...}

2、字典的key的型別只能是不可變資料型別,value可以是可變資料型別

dic = {'name':'zs',10:32,(1,2,3):(2,3,4)}
print(dic)#{10: 32, 'name': 'zs', (1, 2, 3): (2, 3, 4)}
dic = {'name':'zs',10:32,[1,2,3]:(2,3,4)}
print(dic) #報錯

3字典的增、刪、改、查

(1)字典的增加

dic  =  {'name':'zs','age':10,'height':1.75}
dic.setdefault('weight',170)#setdefault     {'height': 1.75, 'weight': 170, 'name': 'zs', 'age': 10}
dic.setdefault('weight',180)# 如果 key在字典中就已經存在  就不會覆蓋字典中的值
dic['weight'] = 180 #根據key來設定值
dic['weight'] = 120#如果key存在,就直接覆蓋掉原有的值   {'weight': 120, 'height': 1.75, 'age': 10, 'name': 'zs'}
print(dic)

(2)刪除操作

dic = {'name':'zs','height':1.75}

dic.pop('name')   按照‘鍵’刪除值
print(dic)#  {'height': 1.75, 'age': 10}

dic.popitem()  隨機刪除一個鍵值對

dic.clear()  清除字典中的左右鍵值對

del dic   直接從記憶體中刪除變數 , 效果是報錯

deldic['name']   根據鍵值對刪除 

(3)修改操作

dic  =  {'name':'zs','age':10,'weight':1.33}
根據鍵來修改值
dic['name'] = '趙四'
dic1 = {'name':'趙四','height':1.75}

dic.update()  需要傳遞一個字典,如果key相同就直接修改對應的value,如果key不存在就直接新增鍵值對
dic.update(dic1)

(4)查詢操作

dic = {'name':'zs','age':10,'weight':1.33}
value = dic.get('name')  根據鍵獲取對應的值我們可以定義一個變數接收返回值
print(value)

ret = dic.key  獲取所有的‘鍵’

values = dic.values() 獲取所有的‘值’

ret = dic.items()  返回列表套元組的形式

ret = len(dic)   返回鍵值對個數

tup = (1,2,3,)
ret = dict.formkeys(tup,'aa')   # {1: 'aa', 2: 'aa', 3: 'aa'}
print(ret)

4.python字典的特點

因為字典是無序的,所以沒有索引值

因為字典沒有索引值,所以字典以鍵取值,(字典的鍵相當於列表的索引)

因為自電視以鍵取值,所以字典的鍵具有唯一性,且不可修改

因為字典的鍵不可修改,所以列表和字典可變型別的資料不可以給字典做鍵

5.字典的遍歷

in   判斷指定的鍵是否在字典中

not in   判斷指定的鍵是否不再字典中

dic = {'name':'zs','weight':129,'age':10}
for key,value in dic.items():
    print(key,'---',value)


結果:
age --- 10
name --- zs
weight --- 129

for.....in ......  通過for.....in ...... :的語法結構,我們可以遍歷字串、列表、元組、字典等資料結構

in 和not in
dic = {'name':'zs','weight':129,'age':10}
key = dic.keys()
if 'name' not in keys:
    dic['name'] = '趙四'
else:
    dic['name'] = '尼古拉斯'      dict_keys(['age', 'name', 'weight'])
                                 {'age': 10, 'name': '尼古拉斯', 'weight': 129}

print(dic)


for key in dic.key():      # 只獲取key
    print(key)
             結果:          name
                            weight
                            age