前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python字典操作总结

Python字典操作总结

作者头像
吾非同
发布2020-10-23 10:53:48
5930
发布2020-10-23 10:53:48
举报
文章被收录于专栏:吾非同

字典相对于列表,查找速度快,不会随着元素增多而变慢,时间复杂度O(1),并且字典是另一种可存储任意类型对象。

字典中存储的元素都是键值对(key:value),键值之间用冒号(:)分割, 每个字典元素(键值对)之间用逗号(,)分割, 整个字典包括在花括号 {} 中。

{key1:value1,key2:value2,key3:value3}

字典的key是唯一的,并且可以是任意的不可变对象(int、str、bool、tuple ...),但是一般我们都使用str作为字典的key。字典的值不需要唯一, 可以为任何的数据类型,字典的key不能重复的,否则后边的会替换到前边的值。

1.元素访问

有两种访问元素的方式

直接通过key来获取, 如果key不存在,则会抛出错误。

使用 get 方法来根据键获得值, key不存在则默认返回 None,返回值也可自定义。

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
#使用key获取
print(d['name'])
#使用get方法获取
print(d.get('name'))
print(d.get('weight',"170"))

2.删除清空元素

使用 pop 方法根据 key 来删除字典中的元素。

del 删除字典或指定的键值对。

使用clear清空元素。

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
# 删除某个key指定的元素
d.pop('name')
del d['age']
#删除整个字典
del d
# 清空字典
d.clear()

3.新增或修改元素

(有则更新,无则新增)

直接通过key来进行修改或者新增,当key存在为修改,键不存在, 默认为新增元素。

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
d['name'] = 'Lily'#修改元素
d['weight']=180#新增元素,使用update可以批量更新

4.遍历元素

字典是非序列式容器, 无法通过逐个元素获取, 需要先将字典转换成类似列表的形式, 再对其进行遍历。

1.通过字典的 keys 方法,获得字典key的列表, 然后根据key进行遍历。

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
for k in d.keys():
    print(k,d[k])
输出:
name Tom
age 18
gender male

2.通过字典的 values 方法,获得字典值的列表。

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
for value in d.values():
    print(value)

3.通过字典的 items 方法,返回可迭代对象,内部是元组,元组有2个数据,一个是字典key,一个是字典的value

代码语言:javascript
复制
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
for item in d.items():
    print(item)
输出:
('name', 'Tom')
('age', 18)
('gender', 'male')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吾非同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.元素访问
  • 2.删除清空元素
  • 3.新增或修改元素
  • 4.遍历元素
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档