用列表去记录电话本:
contacts = ['爸爸:189000777X', '小明:137000786X', '妈妈:189000889X']。如果要查妈妈的电话,但忘记在那个位置,一个方法就是按顺序从第一个开始找:
>>>contacts[0]
'爸爸:189000777X'
>>>contacts[1]
'小明:137000786X'
>>>contacts[2]
'妈妈:189000889X'
第三次终于找到了。如果这个电话本很大,有100多个,妈妈的电话在第100个,那不是要尝试100次才找到?
Python提供了另一种数据组织形式——字典,用来解决这种根据键值(key,例如:妈妈)能一次找到这个键值对应的值(value,例如:电话号码)。
1、构造一个空字典(后续可以用来添加元素):
2、构造一个非空字典,键值不能重复,在构造时如果键值重复只保留最后的值:
3、键值不能重复,在构造时如果键值重复只保留最后的值:
4、键值和值不是都可以调过来的:
电话本似乎可以,但与习惯不一样,也不好查找:
商品价格表,经常有同样价格的,就不可以倒过来了:
可乐不见了!!
5、添加新元素:
6、获取元素值:
7、修改元素值:
可见,添加和修改的句法都是一样的,就是说使用这句代码时,词典如果已有这个键值,就用新值代替旧值,否则添加一个新元素。
8、删除元素:
9、遍历元素:
(1)很自然就想到for......in......语句,尝试一下:
上图看到的是键值的遍历,不是元素的遍历。
(2)字典的内置函数items与遍历:
(3)字典的内置函数values与值的遍历:
练习题:
新建一个商品价格字典:
铅笔 2元
橡皮 2元
白纸 1元
文具盒 20元
玩具手枪 60元。
对字典进行操作:
(1)添加一个8元的橡皮泥;
(2)将白纸的价格修改成0.2元;
(3)删除玩具手枪;
(4)然后将字典打印出来;
(5)将你调整后的商品价格字典中的商品名称和价格分别打印出来。