python基礎5.1
阿新 • • 發佈:2018-12-31
一 字典
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