字典的创建

字典是存放一系列键值对的数据结构,对标js中的对象,也对标java中的map。

现实中的例子就是通讯录,根据这个人的名字就可以得到他的电话号码。

定义字典的写法跟js中定义对象是一样的,两边花括号,中间key:value,区别在于js定义对象的时候key可以不用引号。

person = {"Bob":"13113113111","Mary":"13113113112","Mark":"13113113113"}print(person)

打印结果:

{'Bob': '13113113111', 'Mary': '13113113112', 'Mark': '13113113113'}

我们还可以使用dict函数来创建字典:

person = dict(name="小明",age=18)print(person)

打印结果:

{'name': '小明', 'age': 18}

它还允许我们将其他序列转化成字典

item = [('name','小明'),('age',18)]

person=dict(item)print(person)

打印结果:

{'name': '小明', 'age': 18}

字典的基本操作

访问字典中的值

字典中的元素都是key-value的形式存放的,所以要访问某一个value,就要用到对应的key,写法是用中括号:

person = {'name' : '小明', 'age' : 18}print(person['name'])

打印结果:

小明

你还可以使用get方法来访问值:

person = {'name' : '小明', 'age' : 18}print(person.get('name'))

打印结果:

小明

他们的区别在于,使用get方法如果访问一个不存在的key,它会返回None,而使用中括号访问一个不存在的key,会报错。

还有一个有意思的方法 setdefault,它的作用是获取一个key对应的value,如果这个key存在,那么获取值,如果不存在,那么获取默认值,并往字典中插入这个key。

person = {'name' : '小明', 'age' : 18}

value= person.setdefault('sex','未知')print(value)print(person)

打印结果:

未知

{'name': '小明', 'age': 18, 'sex': '未知'}

获取字典长度

len方法几乎可以对任何数据进行长度计算,字典中每一对key-value就算做一个长度

person = {'name' : '小明', 'age' : 18}print(len(person))

打印结果:

2

添加键值对

字典是动态结构,可以自由添加键值对。

person = {'name' : '小明', 'age' : 18}

person['sex'] = '男'

print(person)

打印结果:

{'name': '小明', 'age': 18, 'sex': '男'}

修改字典中的值

修改和添加一样的,只不过如果你的key在字典中不存在,那么就添加,如果存在,那么就修改。

person = {'name' : '小明', 'age' : 18}

person['age'] = 15

print(person)

打印结果:

{'name': '小明', 'age': 15}

删除键值对

删除字典中的元素用del关键字,跟删除列表中的元素是一样的用法。

person = {'name' : '小明', 'age' : 18}del person['age']print(person)

打印结果:

{'name': '小明'}

检查key是否存在

person = {'name' : '小明', 'age' : 18}if('name' inperson):print('这个key是存在的')else:print('这个key是不存在的')

打印结果:

这个key是存在的

字典常用方法

清空字典内容 clear()

clear方法用于删除字典中的所有元素,是直接对原字典执行,方法本身不会有返回值。

person = {'name' : '小明', 'age' : 18}

person.clear()print(person)

打印结果:

{}

浅复制 copy()

copy方法返回一个新字典,包含的键值对跟原来的字典完全相同。但是它只是拷贝字典中的一级对象,对于第二级对象,它只是引用。

我们实验一下,让字典里面存列表,拷贝之后再修改列表中的值

x = {'name' : '小明', 'age' : [11,12,13]}

y=x.copy()

y['name'] = '大明'y['age'][1] = 100

print(x)print(y)

打印结果:

{'name': '小明', 'age': [11, 100, 13]}

{'name': '大明', 'age': [11, 100, 13]}

深复制 deepcopy()

from copy importdeepcopy

x= {'name' : '小明', 'age' : [11,12,13]}

y=deepcopy(x)

y['name'] = '大明'y['age'][1] = 100

print(x)print(y)

打印结果:

{'name': '小明', 'age': [11, 12, 13]}

{'name': '大明', 'age': [11, 100, 13]}

获取所有键 keys()

keys方法返回的是一个迭代器,可以用list方法将它转换成列表

person = {'name' : '小明', 'age' : 18}print(list(person.keys()))

打印结果:

['name', 'age']

所谓的迭代器,就是可以直接用来循环的对象

person = {'name' : '小明', 'age' : 18}for item inperson.keys():print(item)

打印结果:

name

age

获取所有值 values()

person = {'name' : '小明', 'age' : 18}print(list(person.values()))

打印结果:

['小明', 18]

弹出字典中的元素 pop()

弹出的意思其实就是 获取+删除 两个操作的组合。

person = {'name' : '小明', 'age' : 18}

value= person.pop('age')print(value)print(person)

打印结果:

18

{'name': '小明'}

遍历字典 items()

items方法返回一个字典视图的迭代器,包含了字典中所有的键值对,每个键值对都是以元组的形式存在

person = {'name' : '小明', 'age' : 18}

y=person.items()for item iny:print(item)

打印结果:

('name', '小明')

('age', 18)

如果你想进一步取里面的数据,也可以这么写:

person = {'name' : '小明', 'age' : 18}

y=person.items()for k,v iny:print(k + '---' + str(v))

打印结果:

name---小明

age---18

python获取字典长度_Python基础-字典相关推荐

  1. python获取数组长度_Python返回数组(List)长度的方法

    原博文 2016-03-16 11:53 − 其实很简单,用len函数: >>> array = [0,1,2,3,4,5]>>> print len(array) ...

  2. 【自学Python】Python获取字符串长度

    Python获取字符串长度 Python获取字符串长度教程 在 Python 中要想获取 字符串 长度可以使用 len() 函数. Python len()函数详解 定义 我们将要获取的字符串的长度, ...

  3. python获取字典长度_python字典操作

    python中字典用于存放具有映射关系的数据 字典中的key不能相同 字典中的key必须为不可变类型,所以可以是数.字符串.元组, 但不能是列表 创建字典 通过{}创建 dict1 = {'eric' ...

  4. python获取字典长度_Python中的字典

    1 字典的定义 dictionary(字典) 是 除列表以外Python之中 最灵活的数据类型 字典同样可以用来 存储多个数据 通常用于存储 描述一个 物体的相关信息 和列表的区别 列表是 有序的对象 ...

  5. python.集合转列表_Python基础数据类型:元组、列表、字典、集合

    你好,我是goldsunC. 让我们一起进步吧! 元组.列表.字典.集合 元组和列表是Python语言中非常重要的一部分内容,它们是Python中除了字符串以外的另两种序列结构,几乎在任何地方都少不了 ...

  6. python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串

    列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...

  7. python编程字典数据库_python基础数据类型之字典、集合

    哈啰!大家好,今天是初五了,牛年接财神的好日子,懂得都懂.祝@所有人2021年,事事顺利,牛气冲天,福利满满,财运亨通,步步高升,学业进步! 那么,这次介绍的是鼎鼎大名的字典,其以其操作的灵活性.操作 ...

  8. python 列表 元祖 字典 集合_python基础知识之列表、元祖、字典、集合、字符串。...

    1.可变类型之列表 列表用 [ ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除等 ```python names='zhangyang guyun xiangpeng xulia ...

  9. python 字典长度_python字典详解

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: di ...

最新文章

  1. 【时间序列】时序预测竞赛之异常检测算法综述
  2. IIS崩溃时自动抓取Dump
  3. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之12.Servlet基础(2)
  4. python理论知识选择题_python基础知识练习题(一)
  5. 修改hostname有几种方式?(转)
  6. 01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,背包问题求方案数
  7. WPF DataGrid 获取当前行某列值
  8. T-SQL常用日期函数
  9. Verilog学习笔记 (四)QPSK调制实现
  10. 微信小游戏推荐:又一款H5微信互动小游戏要火啦!
  11. 机器学习视频推荐-绝对的通俗易懂(线性回归,逻辑回归,朴素贝叶斯分类器,K-近邻,SVM,决策树,随机森林,XGboost,k-means聚类)
  12. EDA技术与VHDL设计
  13. Racket 学习笔记
  14. nmos和pmos区别、工作原理及基本结构详解
  15. windows下AV1的编译
  16. 手风琴控件android,ExpandableListView实现手风琴效果
  17. 微软服务器登录不上,微软账号无法登录怎么办
  18. Python处理txt文件:多句分行+行首尾添加字符+for循环--Python新手自练系列
  19. 上采样,重采样和下采样,降采样
  20. redis连接出错 ERR AUTH <password> called without any password configured for the default user.

热门文章

  1. 不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤
  2. 我苦心搭建的技术架构,终于把公司干没了……
  3. spring整合kafka项目生产和消费测试结果记录(一)
  4. Discuz完整手动迁移教程(不使用备份功能)
  5. Spring 框架基础(01):核心组件总结,基础环境搭建
  6. 读书笔记—《销售铁军》随记7
  7. GCP发布Kaniko:在非特权容器和Kubernetes中构建容器镜像的工具
  8. 用jdbc连接oracle的第一次经历
  9. Django Web实现动态三级联动
  10. 模拟手机QQ滑动删除消息