python中的字典

 字典

字典是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)

  












posted @ 2020-04-23 09:37  MLing  阅读(218)  评论(0编辑  收藏  举报