字典
这个东西叫dictionary 简写为dict,是一种key-value的数据结构,类似一个map容器,通过key索引去查找对应的value,我理解这个数据结构在python里面的应用应该是最广泛的,好了,开始吧。
初始化
D={
'Iverson':100,
'Kobe':98,
'Nicholas':100,
'Bryen':50
}
eD={}
Key-Value成对出现,key与value之间用“:”隔开,每一对之间用“,”隔开。
print D[‘Iverson’]打印结果为100
增
D={
'Iverson':100,
'Kobe':98,
'Nicholas':100,
'Bryen':50
}
D['James']=80
print D
第7行:在字典D中增加键值‘James’,其对应值为80
另:如果‘James’这个关键字存在,那么执行第7行时会修改其对应值
删
D={
'Iverson':100,
'Kobe':98,
'Nicholas':100,
'Bryen':50
}
del D['Bryen']#D.pop('Bryen')
print D
D.clear()
print D
del D
第7行:删除键值‘Bryen’及其对应值
第9行:清空字典D
第11行:删除字典D
综上:del D[‘Key’] 删除键值Key及对应的值,D.clear() 清空字典,del D 删除字典,通过print D我们可以观察到字典这个数据结构是一个无序表,D初始化的顺序和print D显示出来的顺序没有直接联系。
另:补充方法D.pop(Key) 同为删除键值‘Key’及其对应值,本人更倾向于用此方法进行字典中某个关键字删除操作。
改
改的方式和增加一样,区别在于所操作的Key是否存在,如果存在就是修改,反之则是增加。
查
D={
'Iverson':100,
'Kobe':98,
'Nicholas':100,
'Bryen':50
}
print D
print D['Iverson']
print D.get('Kobe')
print 'Nicholas score is :',str(D.get('Nicholas'))
print 'Nicholas score is :',D.get('Nicholas')
第7行:打印整个字典
第8行:查询键值为‘Iverson’所对应的值
第9行:查询键值为‘Kobe’所对应的值
第10、11行:打印键值为‘Nicholas’所对应的值
综上:查询字典的方式有D[key]和D.get(Key)两种,str(value)是将value强制转换为字符串,本人倾向于使用D.get(Key)
延伸
len(dict)获取Key-Value的个数
type(dict)得到整个dice的数据结构类型
D.has_key(key)查询中是否有关键字key,存在则返回True,此处重点提以前,在操作一个字典之前,必须要先通过此功能检查所要操作的key是否存在,代码如下:
if D.has_key(key)==True:
do something
否则代码会有由于这个key不存在于D中而报错,从而停止执行后续代码,关于其他几个数据结构的操作也是类似的, 在操作一个key之前,最好判断一个下这个key是否存在
D.items()以列表返回可遍历的(键, 值) 元组数组,L=D.items()
D.keys()以列表返回一个字典所有的键,L=D.keys()
D.values()以列表返回字典中的所有值,L=D.values()
D.popitem()随机返回并删除字典中的一对键和值 (我对同一个字典反复执行此函数删除的都是同一对Key-Value)
补充
实例1:
D={
‘Iverson’:100,
‘Kobe’:98,
‘Nicholas’:100,
‘Bryen’:50,
‘Iverson’:99
}
如上图有两个相同的key ‘Iverson’,python会用最后一个key的值覆盖前面的,所以print D打出来对应关键字Iverson的值为99