python入门-数据结构-字典

字典

这个东西叫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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值