字典是我目前写代码水平用的最多的,但是由于水平确实太差,get一个固定使用模式就不想去思考是否使用正确,也没有总结过,反正能用就行;但是鉴于师兄说我用错了,昨天也有朋友在简书问我怎么正确用字典,确实不敢贸然回答,于是重新翻了遍书稍作总结,也有助于自己梳理概念性的知识。
1、创建字典的方式
第一种:
{'name':'lei','age':26}
第二种(这种我用的最多,键值作为变量,则字典中不停传入新的元素D[key] = value):
D = {}
D['name'] = 'lei'
D['age'] = 26
第三种(键必须都是字符串):
dict(name='lei',age=26)
第四种(在程序运行时把键和值逐步建成序列):
dict([('name','lei'),('age',26)])
第五种(键的值都相同):
dict.fromkeys(['a','b'],0)
等同于
{'a':0,'b':0}
第六种(zip函数是在一个单个调用中从键和值的列表来构建一个字典的方式之一):
dict(zip(['a','b','c'],[1,2,3]))
等同于
{'a':1,'c':3,'b':2}
注:字典无序,列表有序,字典的排序用以下方法
for k in sorted(D):print(k,D[k])
第七种(字典解析表达式):
D = {x:x**2 for x in [1,2,3,4]}
等同于
{1:1,2:4,3:9,4:16}
2、常用字典方法
方法一:
D = {'name’:'lei','age':26}
list(D.keys())
返回
['age','name’]
方法二:
list(D.values())
返回
[26,'lei']
方法三:
list(D.items())
返回
[('age',26),('name’,'lei')]
注:这三个方法,Python3.0不像Python2.6一样返回结果列表,实际返回的是视图对象;视图对象是可迭代的,意味着对象每次产生一个结果项,而不是在内存中立即产生结果列表;如果想要应用列表操作或者显示它们的值,需要通过内置函数list来运行这三个方法的结果
方法四:
D.get('name’)
返回'lei'
如果键不存在,则返回None,在遍历字典项的循环中很有用,不会因为键不存在而导致程序终止,功能类似于try语句捕获异常
try:
print(D['gender'])
except KeyError:
pass
方法五:
D2 = {'gender':female}
D.update(D2)
此时D为{'name':'lei','age':26,'gender':female}
该方法用于合并字典
方法六:
D.pop('age')
返回26
此时D为{'name':'lei'}
字典pop方法能从字典中删除一个键并返回它的值
3、字典的in成员关系表达式
if 'name' in D:XXXX
等价于
if D.get('name') != None:XXXX
我之前的用法一直是:
for key,value in Dict.items():
if key == 'name':
看来以后要抛弃这种冗余的写法了
网友评论