python基础学习-字典

字典的类 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)

python基础学习-字典

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(海贼王)

 

上一篇:为智能化尽“芯”尽“力”


下一篇:移动时代,谁来打造企业协同办公平台?