字典是一種容器類型的數(shù)據(jù)類型(序列)段磨,儲存的數(shù)據(jù)以鍵值對的形式出現(xiàn)陋桂。
字典中的元素全部都是鍵值對。
字典是可變的荆几,但是是無序的吓妆。
鍵是唯一的。
鍵值對:鍵:值(key:value)
key是形式吨铸,值才是真正要存的內(nèi)容
鍵:理論上可以是任何不可變的數(shù)據(jù)類型行拢,但實際開發(fā)的時候一般使用字符串作為key
值:任何數(shù)據(jù)類型
聲明一個字典
創(chuàng)建一個字典變量
dict1 = {}
print(type(dict1))
dict2 = {'index': 1, 'data': 'name'}
print(dict2)
"""
將其他數(shù)據(jù)類型轉(zhuǎn)換成字典
"""
dict3 = dict([(1, 2), (2, 3)])
print(dict3)
字典的增刪查改
查:獲取字典的元素的值
字典獲取元素的值是通過key來獲取的
字典[key]
字典.get(key)
區(qū)別:如果key不存在,前者報錯诞吱,后者返回None
注意:如果key值確定存在舟奠,使用[]語法獲取房维;不確定key值是否存在才使用get方法去獲取值
person = {'name': 'Tom', 'age': '18', 'face': '66'}
print(person['name'])
print(person.get('asd'))
增\改元素:
通過key獲取字典元素沼瘫,然后賦值。當(dāng)key本身就存在的時候咙俩,就是修改元素的值耿戚;不存在的時候就是給字典添加鍵值對。
person['height'] = 1.8
print(person)
person['age'] = 22
print(person)
刪除:刪除的是鍵值對
del dict[key] ----注意:key不存在會報錯
dict.pop(key) ----會返回刪除鍵值對對應(yīng)的值
del person['face']
print(person)
age = person.pop('age')
print(person, age)
相關(guān)的數(shù)組屬性
dict.keys():獲取字典所有的key阿趁,返回值的類型是dict_key,但是可以把它當(dāng)成列表來使用膜蛔。
dict.values():獲取字典所有的值。
dict.items():將字典中所有的鍵值對轉(zhuǎn)換成一個一個的元組脖阵,key作為元組的第一個元素皂股;value作為元組的第二個元素。
student_dict = {'name': 'GHope', 'studen_id': 'py180501', 'score': {'English': 90, 'Math': 99}}
keys = student_dict.keys()
print(keys)
# 遍歷獲取每個key
for key in keys:
print(key)
print(student_dict.values())
print(student_dict.items())
遍歷字典
直接遍歷字典獲取到的是所有的key(推薦使用)
遍歷直接獲取到key和value(不推薦使用)
for key in student_dict:
print(key, student_dict[key])
for key, value in student_dict.items():
print(key, value)
列表中有字典独撇、字典中有字典屑墨、字典中有列表
聲明一個變量躁锁,作用是用來存儲一個班級的學(xué)生的信息。其中學(xué)生的信息包括姓名卵史、性別战转、年齡、電話(至少存三個)以躯。
class_information = []
dict_information = {}
while True:
name = input('請輸入你的名字:')
dict_information['name'] = name
sex = input('請輸入你的性別:')
dict_information['sex'] = sex
age = input('請輸入你的年齡:')
dict_information['age'] = age
tel = input('請輸入你的電話:')
dict_information['tel'] = tel
class_information.append(dict_information)
control = input("1槐秧、繼續(xù)輸入;\n 2忧设、退出并輸出信息")
if control == '2':
break
print(class_information)
class1 = [
{'name': '張三', 'age': 23, 'sex': '男', 'tel': '15300022777'},
{'name': '李四', 'age': 25, 'sex': '女', 'tel': '12779922'},
{'name': '王二麻子', 'age': 20, 'sex': '男', 'tel': '12553'}
]
class1 = {
'name': 'py1805',
'address': '19-1',
'students':[
{'name': '張三', 'age': 18},
{'name': '李四', 'age': 28},
{'name': '王五', 'age': 20},
]
}
其它操作
formkeys()
dict.formkeys(序列刁标,值):創(chuàng)建一個新的字典,序列中的元素作為key址晕,value作為值
in
key in dict: 判斷字典中是否存在指定的key
updata
dict1.updata(dict2):使用dict2中的鍵值對對dict1進(jìn)行更新操作膀懈。其中,如果不存在就添加谨垃;存在就更新启搂。
new_dict = dict.fromkeys(range(10), 100)
print(new_dict)
dict1 = {'1': 'a', '2': 'b'}
dict1.update({'1': 'aaa', '3': 'bbb'})
print(dict1)