Python--字典的操作

字典是python中的一种数据结构,称为映射,字典的作用和列表类似,都是用来存储对象的容器,列表存储数据的性能很好,但是查询数据的性能很差,字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素,在查询元素的时候,字典的效率是非常快的。字典中的每个对象都有一个唯一的名字,这个名字被称为key,通过key可以快速的查询value,这个对象称为value。
新建一个空字典
dic=dict()
dic={}
字典的值可以是任意对象,字典的键是任意的不可变对象且不能重复。
创建新的字典–使用dict()函数来创建,每一个参数都是一个键值对,参数名就是键,参数值就是值
d=dict(name='孙悟空',age=18,gender='男'print(d)
#打印结果:{'name': '孙悟空', 'age': 18, 'gender': '男'}
创建新的字典–将一个包含有双值子序列的序列转换为字典
d=dict([('name','wang'),('age',18)])
print(d)
#打印结果:{'name': 'wang', 'age': 18}
len()获取字典中键值对的个数
d=dict([('name','wang'),('age',18)])
print(len(d))
#打印结果:2
获取字典里的值
d={'name':'wang'}
print(d['name'])
#打印结果:wang
获取字典中不存在的键
d={'name':'wang'}
print(d['sex'])
#打印结果:报错
#Traceback (most recent call last):
#  File "/Users/xmly/PycharmProject/test2/0503.py", #line 60, in <module>
#    print(d['sex'])
#KeyError: 'sex'
get()获取字典中的值
d={'name':'wang'}
print(1,d.get('name'))
print(2,d.get('age'))
print(3,d.get('age','获取不到值时返回默认值'))
#打印结果:
1 wang
2 None
3 获取不到值时返回默认值
修改字典 d[key]=value ,如果key不存在就新增key和value,如果存在就修改key的value
d={'name':'wang'}
d['name']='william'
print(1,d)
d['age']=18
print(2,d)
#打印结果:
1 {'name': 'william'}
2 {'name': 'william', 'age': 18}

setdefault(key[,default])可以用来向字典中添加key-value,如果key已经存在于字典中,则返回key的值,不会对字典做任何操作,如果key不存在,则在字典中添加这个key ,并设置value
d={'name':'william'}
result=d.setdefault('age',18)
print(1,result)
result2=d.setdefault('name','wang')
print(2,result2)
#打印结果
1 18
2 william
updata()方法:将其他的字典中的key-value添加到当前字典中,⚠️如果其他的字典中存在相同的key,会将原字典中的key对应的value更新
a={'name':'will'}
b={'age':'18'}
a.update(b)
print(a)
#打印结果:{'name': 'will', 'age': '18'}
del 删除字典中的key-value
d={'name':'wang','age':18,'gender':'male'}
del d['name']
popitem()删除随机删除字典中的一个键值对,一般都会删除最后一个键值对
d={'name':'wang','age':18,'gender':'male'}
d.popitem()
pop() 根据key删除字典中的key-value,会将被删除的value返回,如果删除不存在的key会抛出异常,如果使用pop()指定了默认值,再删除不存在的key时,不会报错,而是直接返回默认值。
d={'name':'wang','age':18,'gender':'male'}
result=d.pop('name')
result2=d.pop('address','这是默认值')
print(1,result)
print(2,result2)
#打印结果:
'''
1 wang
2 这是默认值
'''
clear()清空字典
d={'name':'wang','age':18,'gender':'male'}
d.clear()
copy() 用于字典的浅复制,复制以后的对象和原对象是独立的,修改一个不会影响另一个
但是⚠️:浅复制只会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制
d={'a':{'name':'wang','age':20},'age':18,'gender':'male'}
d2=d.copy()
print(id(d))
print(id(d2))
#打印结果
'''
140214646828320
140214646837408
'''
#这时如果改变d2中的a这个key的value
d2['a']['name']='william'
print(d)
#打印结果:发现可以被改动,印证了“浅复制只会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制”
{'a': {'name': 'william', 'age': 20}, 'age': 18, 'gender': 'male'}
遍历字典keys(),values(),items()
#keys()该方法会返回字典的所有的key,该方法会返回一个序列,序列中保存有字典的所有的键
d={'name':'wang','age':18,'gender':'male'}
print(d.keys())
#可以遍历获取
for key in d.keys:
	print(key)
#values()该方法会返回字典的所有的value,该方法会返回一个序列,序列中保存有字典的所有的值
print(d.values())
#可以遍历获取
for value in d.values:
	print(value)
#items()该方法会返回字典所有的items,该方法会返回一个序列,序列中保存有字典的所有的双值子序列
print(d.items())
#可以遍历获取
for key,value in d.items():
	print(key,value)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值