# ========================字典(dict)基本方法=========================== # 用途: # 定義方式:通過大括號來存儲數據,通過key:value來定義鍵值對數據,每個鍵值對中間通過逗號分隔 # key:一定是一個不可變類型 # value:可以是任意類型
定義方式
定義:在{}內用各元素用逗號隔開,每個元素都是 key:value的形式,其中value可以是任意類型, 而key必須是不可變類型。一般而言,key是str類型,因為字符串類型可以對value有描述性功能
my_dict = {'name': 'yyh', 'age': 18, 'sex': 'male'}
# 等價於
my_dict = dict({'name': 'yyh', 'age': 18, 'sex': 'male'})
類型轉換
# 轉換1:
my_dict = dict([['name', 'yyh'], ('age', 18)]) print(my_dict) >>>{'name': 'yyh', 'age': 18}
# 轉換2:
my_dict = {}.fromkeys(('name','age','sex'),None) print(my_dict)
>>>{'name': None, 'age': None, 'sex': None}
# fromkeys()將元組內的值分別取出作為Key與None(第二個參數)形成配對
# dict + zip生成字典 my_dict = dict(zip(['k1', 'k2', 'k3'], [1, 2, 3])) print(my_dict)
操作
# 1.取值 print(my_dict['name']) print(my_dict['hobbies'][0]) # 賦值 ps:如果鍵已存在,則會改變對應的值 my_dict['sex'] = 'male' my_dict['age'] = 20 print(my_dict)
# 2.長度 print(len(my_dict)) # 3.in 和 not in 判斷某個值是否為dict的key print('name' in my_dict) # 4.刪除 pop()刪除指定的key及對應的value,並返回value的值 print(my_dict.pop('name'))
# 5.keys(),values()和items() print(my_dict.keys()) # 返回所有的key print(my_dict.values()) # 返回所有的value print(my_dict.items()) # 返回所有的鍵值對
# 6.for循環遍歷 for key in my_dict: # 默認遍歷為key print(key) for key in my_dict.keys(): print(key) for value in my_dict.values(): # 遍歷value print(value) for key,value in my_dict.items(): # 遍歷鍵值對 print(key,':',value,sep='')
# 7.get() print(my_dict.get('name')) # 返回對應的value print(my_dict.get('aaa',200)) # 如果不存在指定的key,默認返回None,第二個參數可設置返回值(200) # 8.pop() print(my_dict.pop('name')) # 刪除指定的key和value,並返回value # 9.popitem() print(my_dict.popitem()) # 隨機刪除一對鍵值,將被刪除的key和value在元組內返回
# 10.update() # 用新字典更新舊字典,有則更改,無則添加(只增不減) my_dict = { 'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'] } my_dict.update({'sex': 'male'}) print(my_dict)
>>>{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'], 'sex': 'male'}
# 11.fromkeys() print(my_dict) my_dict = {}.fromkeys(['k1','k2','k3'],[]) print(my_dict)
>>>
{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running']}
{'k1': [], 'k2': [], 'k3': []}
# 12.setdefault() my_dict = { 'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'] } res = my_dict.setdefault('name','jxx') # 如果鍵已存在,值不會發生改變 print(res) # 輸出為 yyh res = my_dict.setdefault('sex','male') # 如果鍵不存在,會新增 print(res) print(my_dict)
# =========================類型總結========================== # 有序or無序 : 無序 # 可變or不可變 :可變類型 # 存一個值or存多個值 : 存多個值
