標籤:gre 索引值對 字串 雜湊 必須 efault 分割 因此 形式
1.前言
字典是python中唯一的映射類型,採用索引值對(key-value)的形式儲存資料。python對key進行雜湊函數運算,根據計算的結果決定value的儲存地址,因此,字典的key必須是可雜湊的。可雜湊表示key必須是不可變類型,如:數字、字串、元組。
字典的鍵必須是唯一的,但值則不必。值可以取任何資料類型,但鍵必須是不可變的,如字串,數字或元組。
列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過位移存取。
2.定義字典
字典的每個索引值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括弧({})中
dic = { 'name' : 'nanliangrexue','age':18}print(dic)#輸出{'name': 'nanliangrexue', 'age': 18}
3.字典的增刪改查增
給原有的字典增加新的索引值對
dic = { 'name' : 'nanliangrexue','age':18}dic['gender'] = 'male'print(dic)#輸出{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
刪
dic = { 'name' : 'nanliangrexue','age':18}del dic['age']print(dic)#輸出{'name': 'nanliangrexue'}
- pop():刪除字典中的某個索引值對,並返回被刪除的索引值對
dic = { 'name' : 'nanliangrexue','age':18}print(dic.pop('age'))print(dic)#輸出18{'name': 'nanliangrexue'}
- popitem():隨機刪除字典中的一對鍵和值並以元組形式返回被刪除的索引值對
dic = { 'name' : 'nanliangrexue','age':18}print(dic.popitem())print(dic)#輸出('age', 18){'name': 'nanliangrexue'}
dic = { 'name' : 'nanliangrexue','age':18}del dicprint(dic)#輸出報錯,因為字典已經被刪除Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'dic' is not defined
dic = { 'name' : 'nanliangrexue','age':18}dic.clear()print(dic)#輸出{}
改
要修改字典中已有鍵/值對,只需給要修改的索引值對的索引值重新賦值即可
dic = { 'name' : 'nanliangrexue','age':18}dic['age'] = 28print(dic)#輸出{'name': 'nanliangrexue', 'age': 28}
查
dic = { 'name' : 'nanliangrexue','age':18}print(dic['name'])print(dic['age'])print(dic['gender'])#輸出'nanliangrexue'18Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 'gender'
dic = { 'name' : 'nanliangrexue','age':18}print(dic.get('name'))print(dic.get('age'))print(dic.get('gender'))#輸出'nanliangrexue'18None
4.字典的方法
- dict.fromkeys(鍵,值)
建立一個新字典,鍵必須是可迭代的資料類型(列表,元祖,字串,集合,字典),值就是每個索引值對中預設的值
dict1 = dict.fromkeys([1,2,3],'china')dict2 = dict.fromkeys('name','china')print(dict1)print(dict2)#輸出{1: 'china', 2: 'china', 3: 'china'}{'n': 'china', 'a': 'china', 'm': 'china', 'e': 'china'}
- dict.get(key, default=None)
返回指定鍵的值,如果值不在字典中返回default值
dic = { 'name' : 'nanliangrexue','age':18}print(dic.get('name'))print(dic.get('gender'))print(dic.get('gender','您所尋找的索引值不存在!'))#輸出'nanliangrexue'None'您所尋找的索引值不存在!'
- dict.items()
以列表形式返回可遍曆的(鍵, 值) 元組數組
dic = { 'name' : 'nanliangrexue','age':18}print(dict1.items())#輸出dict_items([(1, 'china'), (2, 'china'), (3, 'china')])
- dict.keys()
以列表形式返回字典中所有的鍵
dic = { 'name' : 'nanliangrexue','age':18}print(dict1.keys())#輸出dict_keys([1, 2, 3])
- dict.setdefault(key, default=None)
和get()類似,也是尋找指定鍵的值, 但如果尋找的鍵不存在於字典中,將會添加鍵並將值設為default
dic = { 'name' : 'nanliangrexue','age':18}print(dic.setdefault('name'))print(dic.setdefault('gender','male'))print(dic)#輸出'nanliangrexue''male'{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
- dict.update(dict2)
把字典dict2的索引值對增加到dict1裡,即就是把dict1和dict2合并成一個字典
dic1 = { 'name' : 'nanliangrexue','age':18}dic2 = { 'gender' : 'male'}dic1.update(dic2)print(dic1)#輸出{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
- dict.values()
以列表形式返回字典中的所有值
dic = { 'name' : 'nanliangrexue','age':18}print(dic.values())#輸出dict_values(['nanliangrexue', 18])
5.字典的遍曆
dic = { 'name' : 'nanliangrexue','age':18}for key in dic.keys(): print(key)#輸出'name''age'
dic = { 'name' : 'nanliangrexue','age':18}for value in dic.values(): print(value)#輸出'nanliangrexue'18
- 同時遍曆字典中的key和value,以元組形式返回
dic = { 'name' : 'nanliangrexue','age':18}for item in dic.items(): print(item)#輸出('name', 'nanliangrexue')('age', 18)
python學習之【第六篇】:Python中的字典及其所具有的方法