Python基本类型-字典

Python中的字典相当于.Net中的Dictionary或Java中的Mapping。它不是序列,而是一种映射。字典存储一系列“key:value”对,key(键)不可重复,value(值)可重复。举个栗子:

>>>user_info={'name':'张三','age':20,'gender':''}

我们可以通过键来读取或修改键所对应的值

>>>user_info['name']
'张三'

>>>user_info['age']+=1
>>>user_info
{'name':'张三','age':21,'gender':''}

Python中的字典是允许边界外的赋值的,给一个不存在的键赋值,字典会创建该键。

>>>user_info={}
>>>user_info['name']='李四'
>>>user_info['age']=18
>>>user_info['gender']=''

>>>user_info {'name':'李四','age':18,'gender':''}

>>>user_info['name']
'李四'

字典的值的类型是不受限制的,我们可以给它列表和字典类型达到嵌套的效果。

>>>card={
            'num':'007'
            'name':{'first_name':'james','last_name':'bond'}
            'weapons':['gun','hypercar']
       }  

>>>card['name']['first_name']
'james'

>>>card['weapons'][-1]
'hypercar'

作为映射,字典只支持通过键来获取元素,且字典不是序列,字典内的元素并不一定会按照输入的顺序排列。举个栗子:

>>>D={'a':1,'b':2,'c':3}
>>>D
{'a': 1, 'c': 3, 'b': 2}

然而我们怎么样按键的顺序输出列表内容呢,只能采用曲线救国的方式,先把键存到一个列表中,然后对列表进行排序,最后遍历列表,输出元素。

>>>list_keys=list(D.keys())
>>>list_keys
['a','c','b']

>>>list_keys.sort()
>>>list_keys
['a','b','c']

>>>for key in list_keys:
       print(key,'=>',D[key])
a
=> 1 b => 2 c => 3

最近的Python版本中提供了sorted内置函数,sorted调用返回结果并对各种对象类型进行排序,当然,也可以对字典的键排序。

>>>for key in sorted(D):
       print(key,'=>',D[key])

a => 1
b => 2
c => 3

判断键或值是否存在于该字典,可以用in或not in来判断

>>>'f' in D           #D默认为D.keys()
False

>>>'f' in D.keys()
False

>>>'a' in D
True

>>>3 in D.values()
True

 

posted @ 2017-05-26 15:35  歌者的快递  阅读(323)  评论(0编辑  收藏  举报