字典
字典是通過{}來表示的,每一條數據都是一個鍵值對(key:value),每個元素之間使用逗號隔開,字典的鍵在同一個字典中是唯一的(不能重復)
字典中的鍵:只能是不可變類型的數據,一般情況下都是使用字符串來作為字典的鍵(可以用數字,字符串或元組充當)
字典中的值:可以取任何數據類型
不可變類型的數據:數值(int,float,bool),字符串、元組
可變類型的:列表、字典、集合(有增刪查改的方法)
創建一個字典:
# 第一種:直接通過{}
dic = {"name": "msuen", "age": 18, 'gender': "男"}
print(dic)
# 第二種:使用內置函數dict(了解)
dic2 = dict([('name', 'msuen'), ('age', 18), ('gender', '男')])
print(dic2)
# 第三種:內置函數dict
dic3 = dict(name="musen",
age=18,
gender="男")
print(dic3)
訪問字典中的值
dic = {"age": 18, "gender": "男","name": "python"} res = dic["name"] print(res)
print("dic['age']:",dic['age'])
修改字典中的值
dic = {"age": 18, "gender": "男","name": "python"} dic['age']= 19 print("dic['age']:",dic['age'])
刪除字典元素del方法
dic = {"age": 18, "gender": "男","name": "python"} del dic['age'] #刪除鍵 print(dic) dic.clear() #清空字典 print(dic) del dic #整個刪除后,后面輸出會報異常 print(dic)
內置函數:
序號 | 函數及描述 | 實例 |
---|---|---|
1 | len(dict) 計算字典元素個數,即鍵的總數。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> len(dict) 3 |
2 | str(dict) 輸出字典,可以打印的字符串表示。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> str(dict) "{'Name': 'python', 'Class': 'First', 'Age': 18}" |
3 | type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> type(dict) <class 'dict'> |
內置方法:
序號 | 函數及描述 |
---|---|
1 | radiansdict.clear() 刪除字典內所有元素 |
2 | radiansdict.copy() 返回一個字典的淺復制 |
3 | radiansdict.fromkeys() 創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值 |
4 | radiansdict.get(key, default=None) 返回指定鍵的值,如果鍵不在字典中返回 default 設置的默認值 |
5 | key in dict 如果鍵在字典dict里返回true,否則返回false |
6 | radiansdict.items() 以列表返回一個視圖dict_items對象 |
7 | radiansdict.keys() 以列表返回一個視圖dict_keys對象 |
8 | radiansdict.setdefault(key, default=None) 和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default |
9 | radiansdict.update(dict2) 把字典dict2的鍵/值對更新到dict里 |
10 | radiansdict.values() 返回一個視圖對象 |
11 | pop(key[,default]) 刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。 |
12 | popitem() 隨機返回並刪除字典中的最后一對鍵和值。 |
補充:
1.字典的嵌套,字典是可以無限進行嵌套的
cities={ '北京':{ '朝陽':['國貿','CBD','天階','我愛我家','鏈接地產'], '海淀':['圓明園','蘇州街','中關村','北京大學'], '昌平':['沙河','南口','小湯山',], '懷柔':['桃花','梅花','大山'], '密雲':['密雲A','密雲B','密雲C'] }, '河北':{ '石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'], '張家口':['張家口A','張家口B','張家口C'], '承德':['承德A','承德B','承德C','承德D'] } } for i in cities: print(i) print("*******************") for i in cities['北京']: print(i) print("******************") for i in cities['北京']['昌平']: print(i)
字典的運用:
例子:記錄學生的姓名和分數,並評級
students = {} write = 1 while write: name = str(input("請輸入姓名:")) grade = int(input("請輸入分數:")) students[str(name)] = grade write = int(input("繼續輸入?\n 1/繼續 0/退出")) print("name rate".center(20,'*')) for key,value in students.items(): if value >= 90: print("%s %s A".center(20,'*')%(key,value)) elif 90 >value>60: print("%s %s B".center(20,'*')%(key,value)) else: print("%s %s C".center(20,'*')%(key,value))
字典列表(在列表中嵌套字典)
dict_0 = {'color': 'green', 'points': 5} dict_1 = {'color': 'yellow', 'points': 10} dict_2 = {'color': 'red', 'points': 15} lists = [dict_0, dict_1, dict_2] for dict in lists: print(dict)