首页 > 编程语言 >五分钟拿捏Python字典-Python3入门必备[字典详细操作]

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

时间:2022-11-21 18:07:46浏览次数:68  
标签:Python 123 dict print 键值 hello Python3 字典

介绍

在上一篇文章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*2 for k in range(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' in d) #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*2 for k in range(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'))#结果:123
print(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]}
del d['a']
print(d) #{'b': 'hello', 'c': [1, 2, 3]}

总结

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

注意:

  1. 字典是一种映射机制,它不是序列,也没有顺序的概念,所以不要对字典使用类似字符串和序列的那种切片操作
  2. 键不一定总是字符串,其实任何不可变对象都可以作为字典的键,例如:整数

标签:Python,123,dict,print,键值,hello,Python3,字典
From: https://blog.51cto.com/micai01/5870699

相关文章

  • Python基础之网络编程:6、网络并发编程理论与实操(二)
    Python基础之网络并发编程目录Python基础之网络并发编程一、任务运行的多种方式1、同步与异步2、阻塞与非阻塞3、综合使用二、创建进程的多种方式1、代码创建进程方式一......
  • Python基础之网络编程:7、网络并发编程理论与实操(三)
    Python基础之网路并发编程目录Python基础之网路并发编程一、线程1、线程理论2、创建线程的两种方式2、1.继承类创建2、2.使用函数创建3、线程的诸多特性二、GIL全局解释......
  • 10python字典
    列表和字典的区别是列表可以通过索引来访问值,而字典可以通过名称来访问各个值。字典这种数据结构称为映射(mapping),字典是Python中唯一内置映射类型,值不按照顺序排列,而是......
  • python爬取网页的多种方式以及保存方法
    爬取网页信息并保存bs4和lxml都是用来将接收的数据解析html1.bs4+excel(openpyxl):importrequestsfrombs4importBeautifulSoupfromopenpyxlimportWorkbookwb......
  • python数据合并 concat方法的运用案例
    案例背景:三个员工分工输入数据,格式一致,列标题一致,存在唯一标识。现在需要将三个员工输入的数据,合并到一个表格里。假设,员工甲输入的数据如下:假设,员工乙输入的数据如下......
  • 使用Python去掉试卷上的蓝色和红色笔记
    #-*-encoding:utf-8-*-importcv2importnumpyasnpclassSealRemove(object):"""印章处理类"""defremove_red_seal(self,image):......
  • python-面向对象-类的定义和实例化
    python是一种面向对象编程语言,自然也有类的概念。python中的类通过class关键字定义,提供了面向对象的所有标准特性,例如允许一个类继承多个基类,子类可以覆盖父类的方法,封装......
  • Windows下使用VSCode搭建IDA Python脚本开发环境
    由于本人是VSCode的重度沉迷用户,需要写代码时总会想起这个软件,因此选择在VSCode中搭建IDAPython的开发环境本文适用的环境如下:1.操作系统windows2.Python33.IDAPro......
  • python3 请求webSocket实例
    网上搜了好久,没看到python写的webSocketClient这里贴个示例供大家参考,测过了asyncdefwebSocketClient(self,url,sendData,headers,breakTag):"""......
  • Python3.10 的开发环境的搭建
    安装下载Python3.10或者其他版本:DownloadPython|Python.org如果Windows操作系统下载,默认是下载64位操作系统的exe安装包:python-3.10.0-amd64.exe双击安装......