Python3字典
字典是另一種可變?nèi)萜髂P?#xff0c;可存儲(chǔ)任意類型的對象。
字典的每個(gè)鍵值(key=>value)對用冒號(hào)分隔,每個(gè)對之間用逗號(hào)分隔,整個(gè)字典包括在花括號(hào)里,格式如下
d = {key1 : value,key2 : value2}鍵必須是唯一,但值則不必。
值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或元組。
一個(gè)簡單字典實(shí)例:
dict = {‘Alice’: ‘2341’,’Beth’ : ‘9102’,’Cecil’ : ‘3258’}創(chuàng)建字典:
dict1 = {‘a(chǎn)bc’ : 456} dict2 = {‘a(chǎn)bc’ : 123, 98.6 : 37}訪問字典的值
把相應(yīng)的鍵放到方括號(hào)中:
?
?
?
修改字典:
向字典添加新內(nèi)容的方法是增加新的鍵/值對,修改或刪除已有的鍵值:
?
?
?
刪除字典元素:
能刪單元的元素,也能清空字典,清空只需要一項(xiàng)操作。
顯示刪除一個(gè)字典用del命令。
?
?
?
字典鍵的 特性
字典值可以是任何python對象,既可以是標(biāo)準(zhǔn)的對象,也可以是用戶定義的,但鍵不行。
兩個(gè)重要的點(diǎn)需要記住:
1) 不允許同一個(gè)鍵出現(xiàn)兩次,創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會(huì)被記住。
?
?
2) 鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行。
?
?
?
字典內(nèi)置函數(shù)&方法
?
?
Python字典包含了以下的內(nèi)置方法
| 函數(shù) | 描述 |
| radiansdict.clear() | 刪除字典內(nèi)所有元素 |
| radiansdict.copy() | 返回一個(gè)字典的淺復(fù)制 |
| radiansdict.fromkeys() | 創(chuàng)建一個(gè)字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應(yīng)的初始值 |
| radiansdict.get(key,default=None) | 返回指定鍵的值,如果值不存在字典值中就返回default值 |
| key in dict | 如果鍵在字典dict里返回true,否則返回false |
| radiansdict.items() | 以列表返回可遍歷的(鍵,值)元組數(shù)組 |
| radiansdict.keys() | 返回一個(gè)迭代器,可以使用list()來轉(zhuǎn)換成列表 |
| radiansdict.setdefault(key,default=None) | 和get()相似,但如果鍵不存在與字典中, 將會(huì)添加鍵并將值設(shè)為default |
| radiansdict.update(dict2) | 把字典dict2的鍵/值更新到dict中 |
| radiansdict.values() | 返回一個(gè)迭代器可以使用list()來轉(zhuǎn)換成列表 |
| pop(key[default]) | 刪除字典給定鍵key所對應(yīng)的值,返回值為被刪除的值。key值必須給出,否則,返回default值 |
| popitem() | 隨機(jī)返回并刪除字典中一對鍵和值(一般刪除末尾對) |
?
?
字典的鍵值是“只讀”的,所以不能對鍵和值分別進(jìn)行初始化
字典是支持無限嵌套的
?
用字典記錄學(xué)生姓名和分?jǐn)?shù),再分級(jí)
/*** student.py ***/ students={} write = 1 while write:name = str(input("please input name : "))grade = int(input("please input grade : "))students[str(name)] = gradewrite = int(input("please input ?\n 1--continue 0--exit")) print('name rate'.center(20,'-')) for key,value in students.items():if value >= 90:print("%s %s A ".center(20,'-')%(key,value))elif 89 > value >= 60:print("%s %s B ".center(20,'-')%(key,value))else:print("%s %s C ".center(20,'-')%(key,value))運(yùn)行結(jié)果:
robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 key.py
please input name : wang
please input grade : 12
please input ?
?1--continue? 0--exit1
please input name : qing
please input grade : 67
please input ?
?1--continue? 0--exit1
please input name : he
please input grade : 98
please input ?
?1--continue? 0--exit0
-----name rate------
------qing? 67 B ------
------wang 12 C ------
------he 98 A ------
?
字典可以通過以下方式調(diào)換key和value,注意原始value類型是不可變類型:
/*** reverse.py ***/ dic = {'a':1,'b':2,'c':3, } reverse = {v:k for k,v in dic.items()} print(dic) print(reverse)運(yùn)行結(jié)果:
robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 rever.py
{'a': 1, 'c': 3, 'b': 2}
{1: 'a', 2: 'b', 3: 'c'}
?
循環(huán)顯示字典key和value值:
/*** show.py ***/ b = {'a' : 'runoob','b':'google'} for i in b.values():print(i) for c in b.keys():print(c)運(yùn)行結(jié)果:
robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 loop.py
runoob
a
b
?
轉(zhuǎn)載于:https://www.cnblogs.com/wanghao-boke/p/11401938.html
總結(jié)
- 上一篇: 怀不上孕是不孕不育吗
- 下一篇: Python3数字