Python3字典
字典是另一種可變容器模型,可存儲任意類型的對象。
字典的每個鍵值(key=>value)對用冒號分隔,每個對之間用逗號分隔,整個字典包括在花括號里,格式如下
d = {key1 : value,key2 : value2}鍵必須是唯一,但值則不必。
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。
一個簡單字典實例:
dict = {‘Alice’: ‘2341’,’Beth’ : ‘9102’,’Cecil’ : ‘3258’}創建字典:
dict1 = {‘abc’ : 456} dict2 = {‘abc’ : 123, 98.6 : 37}訪問字典的值
把相應的鍵放到方括號中:
?
?
?
修改字典:
向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有的鍵值:
?
?
?
刪除字典元素:
能刪單元的元素,也能清空字典,清空只需要一項操作。
顯示刪除一個字典用del命令。
?
?
?
字典鍵的 特性
字典值可以是任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。
兩個重要的點需要記住:
1) 不允許同一個鍵出現兩次,創建時如果同一個鍵被賦值兩次,后一個值會被記住。
?
?
2) 鍵必須不可變,所以可以用數字,字符串或元組充當,而用列表就不行。
?
?
?
字典內置函數&方法
?
?
Python字典包含了以下的內置方法
| 函數 | 描述 |
| radiansdict.clear() | 刪除字典內所有元素 |
| radiansdict.copy() | 返回一個字典的淺復制 |
| radiansdict.fromkeys() | 創建一個字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值 |
| radiansdict.get(key,default=None) | 返回指定鍵的值,如果值不存在字典值中就返回default值 |
| key in dict | 如果鍵在字典dict里返回true,否則返回false |
| radiansdict.items() | 以列表返回可遍歷的(鍵,值)元組數組 |
| radiansdict.keys() | 返回一個迭代器,可以使用list()來轉換成列表 |
| radiansdict.setdefault(key,default=None) | 和get()相似,但如果鍵不存在與字典中, 將會添加鍵并將值設為default |
| radiansdict.update(dict2) | 把字典dict2的鍵/值更新到dict中 |
| radiansdict.values() | 返回一個迭代器可以使用list()來轉換成列表 |
| pop(key[default]) | 刪除字典給定鍵key所對應的值,返回值為被刪除的值。key值必須給出,否則,返回default值 |
| popitem() | 隨機返回并刪除字典中一對鍵和值(一般刪除末尾對) |
?
?
字典的鍵值是“只讀”的,所以不能對鍵和值分別進行初始化
字典是支持無限嵌套的
?
用字典記錄學生姓名和分數,再分級
/*** 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))運行結果:
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 ------
?
字典可以通過以下方式調換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)運行結果:
robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 rever.py
{'a': 1, 'c': 3, 'b': 2}
{1: 'a', 2: 'b', 3: 'c'}
?
循環顯示字典key和value值:
/*** show.py ***/ b = {'a' : 'runoob','b':'google'} for i in b.values():print(i) for c in b.keys():print(c)運行結果:
robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 loop.py
runoob
a
b
?
轉載于:https://www.cnblogs.com/wanghao-boke/p/11401938.html
總結
- 上一篇: 怀不上孕是不孕不育吗
- 下一篇: 英雄联盟手游为什么不发标