字典
字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组
字典中键的属性:不可修改 不可重复 注意:元组可以做为key列表不可以
字典中常用的方法:
一、查询
stu={'name':'MLing', 'age':18, 'add':'北京' } stu['age']=12 print(stu.get('age1')) print(stu.get('name')) print(stu['age']) 运行结果: None MLing 12
*取值get更好一点,get不到的话,可以默认返回一个值None
二、修改
stu={'name':'MLing', 'age':18, 'add':'北京' } stu['ces']=12 print(stu) 运行结果:{'name': 'MLing', 'age': 18, 'add': '北京', 'ces': 12}
三、新增
1.setdefault 只添加不修改
d1 = { 'name': 'albert', 'age': 18, } d1.setdefault('name', 'Albert') d1.setdefault('gender', 'male') print(d1) 运行结果: {'name': 'albert', 'age': 18, 'gender': 'male'} print(d1.setdefault('name')) 运行结果: albert
*如果入参中的key已经存在,不会修改原key的value,除非不存在的时候,才会新增
*使用方法
1)setdefault('X') 仅传key-X时,作为查询,返回key对应的value
2)setdefault('X','Y') 传key-X和value-Y不存在时,作为新增,再原字典中新增一对key和value,传的key-X和value-Y存在时,不新增(注意传参方式)
2.update 既添加也修改
d1 = { 'name': 'albert', 'age': 18, } d1.update({'name': 'Albert', 'gender': 'male'}) # 注意传参方式的不同 print(d1) # 输出 {'name': 'Albert', 'age': 18, 'gender': 'male'}
四、删除
1)pop:通过key删除一个键值对,如果删除的key不存在时,会报错
stu={'name':'MLing', 'age':18, 'add':'北京' } stu.pop('age') print(stu) 运行结果:{'name': 'MLing', 'add': '北京'}
2)popitem方法类似于list.pop,后者弹出列表最后一个元素。但不同的是,popitem弹出随机的项,因为字典中没有最后的元素,该方法适合一个接一个旳移除并且处理项(不用首先获取键的列表,所以很高效)
stu={'name':'MLing', 'age':18, 'add':'北京' } print(stu) print(stu.popitem()) print(stu) 运行结果: {'name': 'MLing', 'age': 18, 'add': '北京'} ('add', '北京') {'name': 'MLing', 'age': 18}
3)del:通过key删除一个键值对,如果删除的key不存在时,会报错
stu={'name':'MLing', 'age':18, 'add':'北京' } del stu['age'] print(stu)
五、其他方法
stu2=stu.copy() print(stu.copy()) # print(stu.items()) # stu.clear() # print(stu.keys()) # print(stu.values()) # # stu.update('qq','2121') # print(stu) x={'username':'admin','machines':['foo','bar','baz']} y=x.copy() y['username']='mlh' y['machines'].remove('bar') print(y) print(x)