码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-09-20 13:48:23      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:pre   tde   判断   字典元素   含义   seq   结合   用法   间接   

作为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字典的小析(增删改查)

标签:pre   tde   判断   字典元素   含义   seq   结合   用法   间接   

原文地址:https://www.cnblogs.com/FCTEY/p/9680227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!