Python字典的小析(增刪改查)
阿新 • • 發佈:2018-09-20
初學者 列表 class 顛覆 什麽 間接 嵌套 from mmm
作為Python的初學者,難免會為了一兩個小問題找資料,然而一找資料,發現Python關於字典這方面的解析很少,我在此稍稍解析一下字典的用法和含義,若有不足,望大家批評。(在這我直接以代碼形式為大家解析)
先來講講我對字典的理解吧
簡單粗暴,字典就是鍵值對,而且是無序的,可控的鍵值對,並且python中字典可以嵌套字典
一、字典的創建
1、傳統的文字表達式
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’}
2、動態分配(也可以用於給字典添加新的鍵值對)
b={} b[‘name’]=’Tom’ b[‘age’]=20 b[‘job’]=’Student’ print b >>> {‘name’:’Tom’,’age’:20,’job’:’Student’}
這也可以用於給字典添加新的鍵值對
b={} b[‘name’]=’Tom’ b[‘age’]=20 b[‘job’]=’Student’ print b print ‘添加後’.center(50,’-’) b[‘friend’]=’Sam’ >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------添加後------------------------ {‘friend’:’Sam’,‘name’:’Tom’,’age’:20,’job’:’Student’}
3、Dict函數創建
c=dict(name=’Tom’,age=20,job=’Student’) print c >>> {‘name’:’Tom’,’age’:20,’job’:’Student’}
還有用鍵-值對的列表建立
c=[(‘name’,’Tom’),(‘age’,20),(‘job’,’Student’)] d=dict(c) print d >>> {‘name’:’Tom’,’age’:20,’job’:’Student’}
若dict()函數創建不帶任何參數,則會返回一個空字典
d=dict() print d >>> {}
4、fromkeys()方法-------fromkeys(seq,values)
創建一個薪字典,參數seq中的元素作為key,參數x作為values,若無參數x則默認為None
* seq為元組
ss=(‘name’,’age’,’job’) f=d.fromkeys(ss,’Tom’) g=d.fromkeys(ss) print f print ‘無參數x,values默認為None’.center(50,’*’) print g >>> {‘name’:’Tom’,’age’:’Tom’,’job’:’Tom’} ***************無參數x,values默認為None*************** {‘name’:None,’age’:None,’job’:None}
5、dict與zip結合創建
h=dict(zip(‘abc’,[1,2,3])) print h >>> {‘a’:1,’c’:3,’’b’:2}
6、推導式創建
I={a:2*a for a in range(3)} Print i >>> {0:0,1:2,2:4}
還可以這樣
i={k:v for (k,v) in zip([‘a’,’b’],[1,2])} Print i >>> {‘a’:1,‘b’:2}
7、其他
list=[‘x’,1,’y’,2,’z’,3] dic=dict(zip(list[::2],list[1::2])) print dic {‘y’:2,’z’:3,’x’:1}
關於字典的創建方法就寫這麽多了,還有些比較奇葩的,基本不會用到的,我就不一一列舉出來了,以免顛覆各位三觀。。
二、給字典添加新元素(寫的不全面,望各位小察)
1、直接添加
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘添加新元素friend’.center(20,’-’) a[‘friend’]=’Sam’ print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} -----------添加新元素friend---------- {‘name’:’Tom’,’age’:20,’job’:’Student’,’friend’:’Sam’}
2、setdefault(key,value)方法
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘添加新元素friend’.center(20,’-’) a.setdefault(‘friend’,’Sam’) #若value為空,則默認為None print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} -----------添加新元素friend---------- {‘name’:’Tom’,’age’:20,’job’:’Student’,’friend’:’Sam’}
3、update(dict)方法
這方法我稱為‘更新’,是用一個新的字典,覆蓋以及添加數據到一個老的字典
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘添加新元素friend’.center(20,’-’) b={‘friend’:’Sam’,’age’:21} a.update(b) print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} -----------添加新元素friend---------- {‘name’:’Tom’,’age’:21,’job’:’Student’,’friend’:’Sam’}
也可以這樣,偶然間看到的。。。emmm。。。
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘添加新元素friend’.center(20,’-’) a.update(b=2) print a {‘name’:’Tom’,’b’:2,’age’:21,’job’:’Student’,’friend’:’Sam’}
三、刪除字典中的元素
1、使用del函數---萬能刪
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) del a[‘job’] print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘name’:’Tom’,’age’:20 }
2、pop()方法---指定刪
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a.pop(‘job’) print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘name’:’Tom’,’age’:20 }
3、popitem()----隨機刪
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a.popitem() #隨機刪,數據少時不易發現 print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘name’:’Tom’,’age’:20 }
4、clear()---清除
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a.clear() print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {}
四、修改字典裏的元素
1、直接修改(同添加方法1.直接添加)
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a[‘name’]=’superme’ print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘name’:’superme,’age’:20,’job’:’Student’}
2、update()----更新
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a.update({‘name’:’superme’}) print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘name’:’superme’,’age’:20,’job’:’Student’}
3、間接修改key的值
a={‘name’:’Tom’,’age’:20,’job’:’Student’} print a print ‘ ’.center(50,’-’) a[‘friend’]=a.pop[‘name’] print a >>> {‘name’:’Tom’,’age’:20,’job’:’Student’} ------------------------------------------ -------------------------------------------- {‘friend’:’Tom’,’age’:20,’job’:’Student’}
五、獲取字典元素
1、直接獲取(若key不存在,會報錯)
a={‘name’:’Tom’,’age’:20} print a print ‘ ’.center(50,’-’) print a[‘name’] >>> {‘name’:’Tom’,’age’:20} ------------------------------------------ -------------------------------------------- Tom
2、get()------若key不存在,返回None
a={‘name’:’Tom’,’age’:20} print a print ‘ ’.center(50,’-’) b=a.get(‘name’) c=a.get(‘superme’) print b print c >>> {‘name’:’Tom’,’age’:20} ------------------------------------------ -------------------------------------------- Tom None
3、獲取元素的key或value
a={‘name’:’Tom’,’age’:20} print a print ‘ ’.center(50,’-’) print a.keys() print a.values() >>> {‘name’:’Tom’,’age’:20} ------------------------------------------ -------------------------------------------- Name,age Tom,20
4、判斷字典中是否含有指定key
a={‘name’:’Tom’,’age’:20} print a print ‘ ’.center(50,’-’) print ‘name’ in a >>> {‘name’:’Tom’,’age’:20} ------------------------------------------ -------------------------------------------- True
至於遍歷字典什麽的,就是循環,循環大致都相通,在這就不說了,希望我寫的這五點,能對各位讀者有幫助,謝謝觀看。
Python字典的小析(增刪改查)