作为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
至于遍历字典什么的,就是循环,循环大致都相通,在这就不说了,希望我写的这五点,能对各位读者有帮助,谢谢观看。
原文地址:https://www.cnblogs.com/FCTEY/p/9680227.html
时间: 2024-11-09 19:35:46