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