字典的类 dict
字典的特性
海贼王 = { '桑尼号':{ '船长': '路飞', '船医': '乔巴', '航海士': '娜美', '剑客': '索隆', '厨师': '山治', '考古学家': '罗宾', '船匠': '弗兰奇', '狙击手': '乌索普', '音乐家': '布鲁客', '海侠': '甚平' }, '食物': ['肉','面包','巧克力'], '饮品': ('酒水','茶水','牛奶'), '七武海': 7, '七武海': 10, 'D': True, 'k1': 'ddd' } print(海贼王)
1.'船长': '路飞',叫做键值对,'船长'为key, '路飞'为value
2.字典的value可以是任何值:数字、布尔值、字符串、列表、元祖、字典
3.字典的key 不能是列表和字典
4.字典是无序的
5.字典的索引是key,当字典中有重复的key时,只能取其中一个
字典的操作(dict类中提供的方法)
(常用: keys() values() items() get() update() )
1.celar 清空字典
2.copy 浅拷贝
3.fromkeys() 根据序列创建字典,并指定统一的值
v = dict.fromkeys({'k1', 'k2'}) print(v) # 输出结果:{'k2': None, 'k1': None} v = dict.fromkeys({'k1', 'k2'}, 999) print(v) # 输出结果:{'k1': 999, 'k2': 999}
4.get() 根据key获取值,key不存在时,默认返回None,也可以指定返回值
v = 海贼王.get('桑尼号').get('船医') print(v) # 输出结果:乔巴 v = 海贼王.get('k1111') # 不指定返回值,默认返回None print(v) # 输出结果:None v = 海贼王.get('k1111', 'lufei') # 指定返回值,不存在返回指定值 print(v) # 输出结果:lufei
5.keys() 获取字典的key
v = 海贼王.keys() print(v) # 输出结果:dict_keys(['D', '饮品', '桑尼号', '食物', '七武海', 'k1']) for item in 海贼王.keys(): print(item) # 输出结果:食物 饮品 k1 七武海 桑尼号 D
6.values() 获取字典的value
v = 海贼王.values() print(v) for item in 海贼王.values(): print(item)
7.items() 获取字典的键值对
for k,v in 海贼王.items(): print(k,v)
8.pop() 删除键值对
v=海贼王.pop('k1') #删除k1键值对,并获取键值对中的value值 print(v) #输出结果:ddd v=海贼王.pop('ab',999) #删除ab键值对,key不存在,返回指定值 print(v) #输出结果:999 v=海贼王.popitem() #随即删除一个键值对,返回的是元祖 print(v) #输出结果:('食物', ['肉', '面包', '巧克力']) k,v=海贼王.popitem() #随即删除一个键值对,返回被删除的键值对 print(k,v) #输出结果:饮品 ('酒水', '茶水', '牛奶')
9.setdefault()
v=海贼王.setdefault('k1',333) #k1存在,不设置,并获取k1的值 print(v) #输出结果:ddd v=海贼王.setdefault('k2',333) #k2不存在,设置,并获取k2的值 print(v) #输出结果:333
10.update() 已存在覆盖,不存在新增
海贼王.update({'k1':333,'k2':'aaa'}) #k1存在,value值被新值覆盖,k2不存在,字典中新增k2键值对 print(海贼王) 海贼王.update(k1=999,k2=888,k3='ily') print(海贼王)