Python中字典dict操作

映射,每一个key对应一个value
字典 是Python中唯一内建的映射类型
字典中的值没有特殊的顺序
但是都存储在一个特定的键里,键可以使数字、字符串、元组等

字典是集合,不是序列字典集合是无序的

3.1字典常用操作
1.创建字典 字典中每个元素包含两个部分,即键和值。

字典是以{和}定义的。
有五种方法创建字典,例如
使用dict函数,通过其他映射(比如其他字典)这样的序列建立字典
d1=dict({“id”:19,“name”:“merry”})
使用dict函数,通过关键字参数来创建字典
d2=dict(id=19,name=“merry”)
使用dict函数,通过(键,值)这样的序列创建字典
d3=dict([(“id”,19),(“name”,“merry”)])
使用zip函数,前后两个tuple相对应构成键值对
d4=dict(zip(“id”,“name”),(19,“merry”))
按照定义创建的字典
d5={“id”:19,“name”:“merry”}

2.查找与反向查找
定义好之后可以通过键值来查找
def reverse_lookup(d,v):
for k in d:
if d[k]==v:
return k
raise LookupError()
raise语句抛出一个异常,该异常为内置异常

3.遍历字典
for key in d1.keys():
print(key,d1[key])

4.添加和修改字典
字典的大小和列都是动态的,即不需要事先指定其容量的大小
使用 字典变量名[键名]=键值 的形式,添加或修改

字典是无序的,因此使用类似append在尾部添加键值对的方法是没有任何意义的

5.字典长度
len(d1)

6.字典检索
使用in运行符来测试某个特定的键是否在字典中
表达k in d(d为字典)查找的是键而不是值

查看一个值是不是在字典中,可以使用方法values,它返回该字典的所有值的一个集合

7.删除元素和字典
使用del语句删除指定键的元素或整个字典
使用clear()方法删除字典中的所有元素
使用pop()方法删除并返回指定键的元素
popitem()弹出随机的项

3.2字典的常用函数
copy()
方法返回一个具有相同键值对的新字典,该新字典是原字典的一个副本(浅拷贝)

deepcopy()实现深拷贝,它不仅仅对原字典中不可变对象进行复制,同时也对可变对象进行复制生成副本而不是引用

2.fromkeys()
使用给定的键创建新的字典,每个键默认的值都是None
{}.fromkeys([‘name’,‘id’])
不想使用给定默认值,可以修改给定的默认值
dict.fromkeys([‘name’,‘id’],’(unknown)’)

2.get()
方法是一个更宽松的访问字典项的方法。当字典中不存在时,返回的是None:

print(d.get(‘name’))
None

可以自定义"默认"值,替换None:

d.get(‘name’,‘Mike’)
‘Mike’

4.items()
items方法将所有的字典项以列表的方式返回,这些列表项中的每一个项都来自于(键,值)
但是字典的项是无序的,因此对一个字典多次调用items()方法得到的list可能不相同,但是抛开列表项的顺序,每次返回的值都是样的

5.keys()方法将字典中的键以列形式返回

d.keys()
dict_keys([‘sex’,‘name’,‘city’])

6.setdefault(键,值)就是能够获得与给定键相关联的值

d=()
d.setdefalut(‘name’,‘Finoa’)
‘Finoa’

d
{‘name’:‘Finoa’}

d[‘name’]=‘Mike’
d.setdefalut(‘name’,‘Finoa’)
‘Mike’

d
{‘name’:‘Mike’}

当键不存在时,setdefault返回默认值并且相应地更新字典。
如果键存在,那么就返回与其对应的值,但不改变字典。默认是可定义的

7.update()
update()方法可以用一个字典更新另外一个字典,若相同的键值存在,则会进行覆盖
update 提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值