*********************字典******************
字典是python中唯一的映射类型,key-value(哈希表),字典 对象是可变的,但key必须用不可变对象。 字典是无序的。
*)字典的创建 1.赋值创建字典,key-value,键值对
In [4]: d = {'key':'value1','key2':'value2'} In [5]: type(d) Out[5]: dict 2.工厂法创建字典 In [6]: d = dict(user1='123',user2='456',user3='789') In [7]: type(d) Out[7]: dict In [8]: print d {'user2': '456', 'user3': '789', 'user1': '123'} 3.通过内建方法fromkeys创建字典 字典中的key有相同的value值,默认为None In [9]: print {}.fromkeys('hello') {'h': None, 'e': None, 'l': None, 'o': None} In [10]: print {}.fromkeys(['user1','user2'],'123') {'user2': '123', 'user1': '123'}
应用案例:生成多个银行卡号,并初始化程序为‘000000’ 卡号由6位组成,前3位是610,后面以此为001,002,003......
*)字典值的访问
•直接通过key访问
•循环遍历访问
-字典不能索引和切片,因为字典是无序的数据类型; -字典不支持重复和连接; -字典支持成员操作符,判断字典的key值是否在字典中存在;in,not in
字典的增删改查 ***增 In [16]: services = {'ftp':[20,21]} #通过字典名[key]=value,将key-value添加到字典中; In [17]: services['http'] = [80,8080] In [18]: print services {'ftp': [20, 21], 'http': [80, 8080]}
#update方法实现添加:key存在,覆盖value值,否则,添加
#setdefault实现添加:key存在,不覆盖value值,否则,添加
***改 update •dic[key] = value
***查
In [78]: dic.keys() 查看key值
In [79]: dic.values() 查看values值
In [85]: dic.items() 查看 key - value 值
In [104]: dic.has_key('age') 查看key是否存在 Out[104]: True In [105]: dic.get('age') 查看指定key对应的value值;若key存在返回value值;若不存在,不报错 Out[105]: 'no' In [106]: dic.get('agee')
**循环遍历字典 #默认情况下遍历字典的key值;
***删 • dic.pop(key) 根据key值删除字典的元素;
In [109]: dic = {'name':'huan','age':'no','habby':'play'} In [110]: dic.pop('age') Out[110]: 'no' • dic.popitem() 随机删除字典元素,返回(key,value) In [111]: dic.popitem() Out[111]: ('name', 'huan') •dic.clear() 删除字典中的所有元素 In [112]: dic.clear() •del dic 删除字典本身 In [113]: del dic
案例: 实现四则运算 -用户分别输入第一个数字,运算操作符,第三个数字; -根据用户的运算操作打印出运算结果;