1. 程式人生 > >Python字典的小析(增刪改查)

Python字典的小析(增刪改查)

初學者 列表 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字典的小析(增刪改查)