五分钟拿捏Python字典-Python3入门必备[字典详细操作]

简介: 在上一篇文章《Python3 详细的数组基础操作 - 入门必备 [列表的操作]》中讲解了Python的列表操作,这次接着唠唠Python数组中的字典,字典是Python的另一种可变容器模型,且可存储任意类型对象。他也是Python项目开发中最常用的数据类型之一,他的格式有点像json,但又不是json,不过在实际的开发中字典和json的相互转换是日常操作,比如我们平时调用第三接口,接口一般返回的是json格式的数据,将接口返回的json数据转化为字典,更方便我们在Python中使用。字典就像他们的名字一样,我们知道关键字或者说索引就可以在字典里找到与关键字匹配的更多详细信息。字典在Pyth

介绍


在上一篇文章Python3 详细的数组基础操作 - 入门必备 [列表的操作]中讲解了Python的列表操作,这次接着唠唠Python数组中的字典,字典是Python的另一种可变容器模型,且可存储任意类型对象。他也是Python项目开发中最常用的数据类型之一,他的格式有点像json,但又不是json,不过在实际的开发中字典和json的相互转换是日常操作,比如我们平时调用第三接口,接口一般返回的是json格式的数据,将接口返回的json数据转化为字典,更方便我们在Python中使用。

字典就像他们的名字一样,我们知道关键字或者说索引就可以在字典里找到与关键字匹配的更多详细信息。字典在Python中是由一系列键-值对组成,将键和值联系到一起,字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:


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


注意

1.字典中的键必须是唯一的,而且,虽然键不指定键的数据类型,但是键只能使用不可变对象作为键(比如:字符串)。

2.dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。

对于字典的值的数据类型,并没有什么要求.可以根据需求选择使用可变或者不可变的对象.如果说列表是有序对象的集合,那么字典就是无序对象集合,导致字典需要通过键值来存取.而不能像列表那样通过偏移来存取.类似于联合数组的操作,不同的是联合数组本身默认有数字索引的.联合数组就好像化学的元素周期表,有序号,化学符号,元素名称,而字典就类似于没有序号的元素周期表化学符号,元素名称.


字典的使用


下面我们通过一个例子来初步体验一下字典的使用

上面我们说到化学元素周期表,那就用周期表举个例:

我们把几个化学元素信息写进字典然后读取它.


ele= {'H':'Hydrogen','He':'Helium','Li':'Lithium','Be':'Beryllium','C':'Carbon','C':'23'}
print(ele)
#打印结果:{'H': 'Hydrogen', 'He': 'Helium', 'Li': 'Lithium', 'Be': 'Beryllium', 'C': '23'}

相同的键值只能读取到一个值,所以一定要注意字典的键一定要是唯一的.


字典的创建


其实字典的使用跟列表的使用差不多,比如创建字典也是直接声明即可:d = {}或者d = {'name':'张三'}


通过指定键值创建字典

通过dict.fromkeys(seq, value)创建字典,需要传入两个参数.其中第一个是键值列表,可使用列表或者元组.


d=dict.fromkeys(['a','b'], 12) #创建一个键分别为a,b;值为12的字典print(d) 
#打印结果: {'a': 12, 'b': 12}


使用zip(keys, vals)函数创建字典,zip()函数可理解为将键和值合并之后返回一组有序对,keys和vals可以是列表或者元组类型的数据:


zd=dict(zip(keys, vals))
#打印结果:{'a': 1, 'b': 2} 有点类似fromkeys()只不过后面的值是一个列表或者元组,可分别对应赋值


直接使用dict()创建
D=dict(a='123', b='hello')


通过for循环创建一个字典
d3= {k:k*2forkinrange(4)}
print(d3)
#结果:{0: 0, 1: 2, 2: 4, 3: 6}

上面的程序就是k为字典的键,冒号':'后面的k*2作为字典对应的值


读取字典


字典的读取是我们日常开发中对字典的常用操作

返回对应键的值


d=dict(a='123', b='hello')
print(d['a'])
#打印结果:123

还可通过get(key, default)获取对应键的值,如果指定的键值在字典中不存在,返回默认值(default)

d=dict(a='123', b='hello')
print(d.get('b'))
#结果:hello


判断键是否在字典中

使用key in d判断键是否存在于字典中,存在返回True,否则返回False

print('a'ind) #True


以列表的形式返回字典的键和值

使用keys()和values()分别返回字典的键和值

print(d.keys()) #结果:dict_keys(['a', 'b'])print(d.values()) #结果:dict_values(['123', 'hello'])


还可以使用list()的返回一个列表

print(list(d.keys())) #结果:['a', 'b']


以列表的形式返回字典中可遍历的元素

使用items()返回可遍历元素

d=dict(a='123', b='hello',c=[1,2,3])
print(d.items())
#结果:dict_items([('a', '123'), ('b', 'hello'), ('c', [1, 2, 3])])

将一对键和值作为一组放到元组中,作为列表中的一项放列表一起返回


字典的复制

这也是字典创建的一种方式,通过copy()复制字典

d=dict(a='123', b='hello',c=[1,2,3])
print(d.copy())
print(d)
#结果如下:#复制的字典:{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}#原字典:{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}

注意:字典的复制操作和赋值操作是有区别的,赋值是一种引用操作,而赋值是重新为复制的字典创建一片独立空间,修改原来的字典的值不会影响复制的字典


获取字典的元素个数
d=dict(a='123', b='hello',c=[1,2,3])
print(len(d))
#结果:3


字典添加元素

使用d.update(E)将字典E中的元素添加到字典d中

d=dict(a='123', b='hello',c=[1,2,3]) #{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}d3= {k:k*2forkinrange(4)} #{0: 0, 1: 2, 2: 4, 3: 6}d.update(d3)
print(d)
#结果:{'a': '123', 'b': 'hello', 'c': [1, 2, 3], 0: 0, 1: 2, 2: 4, 3: 6}


字典的修改元素

修改元素的值更加简单,直接指定键值赋新值即可

d=dict(a='123', b='hello',c=[1,2,3]) #{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}d['c'] ='更新后的值'print(d) #{'a': '123', 'b': 'hello', 'c': '更新后的值'}


字典的删除元素

使用pop(key)删除字典中匹配的键值并返回与键值对应的值.其实就是弹出操作

d=dict(a='123', b='hello',c=[1,2,3]) #{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}print(d.pop('a'))#结果:123print(d) #{'b': 'hello', 'c': [1, 2, 3]}


如果只想单纯删除对应键值所对应的元素,直接使用del删除

d=dict(a='123', b='hello',c=[1,2,3]) #{'a': '123', 'b': 'hello', 'c': [1, 2, 3]}deld['a']
print(d) #{'b': 'hello', 'c': [1, 2, 3]}


总结


字典,顾名思义,就类似我们的新华字典,比如我们通过一个拼音就可以查到对应拼音下所有的字;这里的拼音就相当Python字典的键,拼音对应所有的字就相当于Python的字典中的值.


注意:

  1. 字典是一种映射机制,它不是序列,也没有顺序的概念,所以不要对字典使用类似字符串和序列的那种切片操作
  2. 键不一定总是字符串,其实任何不可变对象都可以作为字典的键,例如:整数
目录
相关文章
|
28天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
29天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
28天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
38 7
|
30天前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
42 5
|
29天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
70 3
|
1月前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。
|
2月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
2月前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
20 1
|
2月前
|
设计模式 缓存 开发者
Python中的装饰器:从入门到实践####
本文深入探讨了Python中强大的元编程工具——装饰器,它能够以简洁优雅的方式扩展函数或方法的功能。通过具体实例和逐步解析,文章不仅介绍了装饰器的基本原理、常见用法及高级应用,还揭示了其背后的设计理念与实现机制,旨在帮助读者从理论到实战全面掌握这一技术,提升代码的可读性、可维护性和复用性。 ####