字典

【Python】 字典 在 Python 编程语言中,字典 () 是一种极其强大且用途广泛的内置数据结构。它允许我们存储键值对 (key-value pairs) 的集合。每一个键 (key) 都是唯一的,并且与一个值 (value) 相关联。你可以将字典想象成现实生活中的词典,其中每个单词(键)都有其对应的释义(值)。字典的核心特性:为何字典如此重要?理解字典的内部工作原理和各种操作对于编写高效、可读且健壮的 Python 代码至关重要。Python 提供了多种创建字典的方式,每种方式都有其适用的场景。这是创建字典最常见和最直接 阅读详情

字典

1.字典是“键值对”的无序可变序列

2.字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。

3.可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。

4.列表中我们通过索引(位置参数)找到对应的对象。字典中通过“键对象”找到对应的“值对象”。

一个典型的字典的定义方式:a = {'name':'张三', 'age':18, 'python研发部成员'}

接下来我带着大家一点一点理解这个字典,首先这个字典看着很长,但其实只有三个元素(键值对)

分别是:'name':'张三'          'age':18          'python研究部成员'

他们三个的格式其实都是一样的,所以我们随便用一个  'name':'张三'   进行讲解 

'name' 属于键对象,就好像列表中的索引(位置参数),

我们讲过,列表内的元素是有序的,我们可以通过从0开始的数字从而找到每个元素

但是字典是无序的呀,那我们就不能通过有序的数字进行表示了,所以我们通过键对象进行表示,

这也就是为什么我们的键对象不是有序数字,当然我们依然可以使用数字作为键对象,

只不过我们是把数字作为名字进行查找,而不是通过数字的大小顺序

所以我们可以通过键对象找到对应的值对象 '张三'  ,并对值对象进行操作,

在 键对象与值对象间,我们需要使用符号   :   来隔开它们

回过头来我们再看资料最上方的三句话,是不是很简单呢。

现在我们应该明白键对象的重要性了,它具有查找值对象的作用,

所以我们要遵循以下规则给键对象和值对象起名:

1.“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。

2.列表、字典、集合这些可变对象,不能作为“键”。

3.并且“键”不可重复。

4.“值”可以是任意的数据,并且可重复。

字典的创建

1.我们可以通过{}、dict()来创建字典对象。 

实操:创建字典,使用元组创建字典

a = {'name':'张三'}         #{'name': '张三'}
b = dict(name='张三')       #{'name': '张三'}

c = {}                     #空的字典对象
d = dict()                 #空的字典对象

#使用元组创建字典:
e = dict([("name","张三"),("age",18)])      #{'name': '张三', 'age': 18}

2.通过组合zip()创建字典对象

在元组中我们学过用组合将两个列表合为一个zip形式的元组

在字典中,我们依然可以将两个列表合为一个字典

只需要将第一个列表写好键对象,第二个列表写好值对象接可以啦

实操:字典的组合

a = ['name','age','job']                #键对象列表
b = ['张三',18,'python研发部成员']       #值对象列表

c = dict(zip(a,b))   #组合
print(c)             #输出:{'name': '张三', 'age': 18, 'job': 'python研发部成员'}

3.通过fromkeys创建值对象为空的字典

在fromkeys()中添加键对象列表,那么我们会获得一个值对象为空的列表

实操:fromkeys的使用

f = dict.fromkeys(['name','age','job'])
print(f) 

#结果:{'name': None, 'age': None, 'job': None}

字典元素的访问

1.通过 [键对象] 获得“值”。若键不存在,则抛出异常。

实操:通过[键对象]访问

a = {'name':'gaoqi','age':18,'job':'programmer'}
b = a['name']
print(b)                    #输出gaoqi

2.通过get()方法获得“值”。❤️推荐使用。

优点是:指定键不存在,返回None;也可以设定指定键不存在时默认返回的对象。

实操:通过get()访问

a = {'name':'张三','age':18,'job':'programmer'}

b = a.get('name')
print(b)                             #张三

c = a.get('gender','gender不存在')   #逗号后面是设定指定键不存在时默认返回的对象
print(c)                             #gender不存在

3.列出所有的键值对items()

a = {'name':'张三','age':18}
b = a.items()
print(b)        #dict_items([('name', '张三'), ('age', 18)])

 4.keys()列出所有的键,values()列出所有的值

实操:分别列出所有的键与值

a = {'name':'张三','age':18}
k = a.keys()
v = a.values()
print(k)        #dict_keys(['name', 'age'])
print(v)        #dict_values(['张三', 18])

5.len() 键值对的个数

实操:查询键值对个数

a = {'name':'张三','age':18,'job':'python研发部成员'}

num = len(a)
print(num)      #3

6.检测一个“键”是否在字典中

实操:检查键对象是否在此字典中

a = {'name':'张三','age':18,'job':'python研发部成员'}

print("name" in a)                  #True

字典元素添加、修改、删除

1.给字典添加“键值对”。如果“键”已经存在,则修改键值对;如果“键”不存在,则添加“键值对”

实操:键值对的添加与覆盖

a = {'name':'张三','age':18,'job':'python研发部成员'}

a['gender']='男'      #不存在,添加新的键值对
a['age'] = 30         #存在,覆盖键值对
print(a)
#输出:{'name': '张三', 'age': 30, 'job': 'python研发部成员', 'gender': '男'}

2.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖

a = {'name':'张三','age':18,'job':'python研发部成员'}
b = {'name':'李四','gender':'男'}

a.update(b)
print(a)

#输出:{'name': '李四', 'age': 18, 'job': 'python研发部成员', 'gender': '男'}

3.字典中元素的删除,可以使用del()方法;或者clear()删除所有键值对;

pop()可以删除指定键值对,并返回对应的“值对象”

实操:分别使用del(),clear(),pop()

a = {'name':'张三','age':18,'gender':'男'}

del(a['name'])       #删除姓名
print(a)             #输出:{'age': 18, 'gender': '男'}


age = a.pop('age')   #删除年龄
print(a)             #输出:{'gender': '男'}
print(age)           #输出:18


a.clear()            #删除所有键值对
print(a)             #输出:{}

4.popitem() :随机删除和返回该键值对。

字典是“无序可变序列”,因此没有第一个元素、最后一个元素的概念;

若想一个接一个地移除并处理项,这个方法就非常有效(因为不用首先获取键的列表)

实操:使用随机删除,删除掉所有键值对

a = {'name':'张三','age':18,'job':'python研发部成员'}

r1 = a.popitem()
print(r1)              #返回被随机删除的键值对('job', 'programmer')
#继续删除
r2 = a.popitem()
r3 = a.popitem()

print(a)               #输出:{}

序列解包

序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。

x,y,z=(20,30,10)                  #快速给x,y,z赋值,使x = 20, y  = 30, z = 10
(a,b,c)=(9,8,10)                   #同理
[m,n,p]=[10,20,30]              #同理

序列解包用于字典时

默认是对“键”进行操作;

如果需要对“值”进行操作,则需要使用values();

如果需要对键值对操作,则需要使用items();

实操:快速给a,b,c赋值

s = {'name':'张三','age':18,'job':'python研发部成员'}

a,b,c = s                #默认对键进行操作
print(a)                 #name

a,b,c = s.values()       #对值进行操作
print(a)                 #张三

a,b,c = s.items()        #对键值对进行操作
print(a)                 #('name', '张三')

使用字典和列表存储和访问 表格数据

我们可以创造多个字典,然后再将多个字典储存到一个列表里,形成一个二维列表,

作用是:列表可以帮助我们快速读取与打印多个字典的数据

具体我们可以通过下面代码进行理解:

实操:二维列表的存储

#创建三个带有数据的字典
a1 = {"name":"张三","age":18,"salary":30000,"city":"北京"}
a2 = {"name":"李四","age":19,"salary":20000,"city":"上海"}
a3 = {"name":"王五","age":20,"salary":10000,"city":"深圳"}

#列表的存储:将字典存放在b中
b = [a1,a2,a3]

实操:二维列表的访问 

涉及到循环,如果实在看不懂,等学到循环就可以了

#列表的访问:

#打印列表b中第一行的人的薪资
print(b[0].get("salary"))

#打印列表b中所有人的薪资
for i in range(len(b)):         #len(b)是列表的长度,所以i循环三次,值分别为0,1,2
  print(b[i].get("salary"))     #第一次循环i = 0,打印b[0]的薪资,也就是第一行的薪资
                                #第二次循环i = 1,打印b[1]的薪资,也就是第二行的薪资
                                #第三次循环i = 1,打印b[2]的薪资,也就是第三行的薪资

#打印表的所有数据
for i in range(len(b)):                
  print(b[i].get("name"),b[i].get("age"),b[i].get("salary"),b[i].get("city"))

#与打印薪资同理,只不过在print中多打印里几个数据而已

【Python】新手入门:什么是Python字典?python空字典如何创建?Python字典中的值如何访问?Python字典如何修改?如何删除python字典元素?python字典内建函数有哪些? 字典是Python核心数据结构,使用花括号定义,元素以“键:值”形式存储并由逗号分隔。核心特性是​​键的唯一性​​(键不可重复且必须为不可变类型),通过键名直接访问对应值(如字典名['键'])。字典内容可动态修改:支持新增键值对、修改已有键的值、删除指定键或清空全部内容。其内置方法支持高效操作:检查键是否存在、获取所有键/值列表、批量更新数据等。字典凭借​​键值映射机制​​,成为存储无序数据集合(如配置信息、属性映射)的理想工具,提供远超列表的查询效率。 阅读详情

相关推荐

Windows下用Anaconda安装d2l库避坑指南(附PermissionError解决方案)

本文详细介绍了在Windows系统下使用Anaconda安装d2l库的完整指南,特别针对常见的PermissionError问题提供了多种解决方案。从环境准备到库安装,再到VSCode配置和数据路径处理,帮助读者顺利搭建深度学习环境并运行《动手学深度学习》的代码示例。

3a9bq4r8t2y的博客 225

python的字典-使用字典+遍历字典+字典嵌套

在python中字典是键值数据项的组合,以{key:value}形式存在。与列表相比,字典是无序,通过key来访问成员,而列表是通过位置来访问成员的。本文将分为基础使用字典、遍历字典和字典嵌套三部分来描述。 一、使用字典 本部分讲字典的增-删-改-查 1.增 2.删 3.改 4.查 二、遍历字典 三、字典嵌套 ...

qq_44801116的博客 8554

高精度磁力计RM3100 传感器LR振荡电路偏置电路分析

LR振荡器电路通过正向和反向偏置实现磁场测量。Sen-XY-f/Z-f传感器线圈作为电感元件构成LR弛张振荡电路,其振荡频率随磁场变化而改变。测量时,线圈一端接地,另一端交替通入正反向电流,通过两次偏置测量消除电路自身磁场干扰,仅保留外部磁场影响。MagI2C芯片通过高速时钟测量振荡次数和时间差,计算磁场强度。该设计具有抗干扰强、数字化输出和高分辨率等优势,是RM3100传感器高精度磁测量的核心原理。

bother3000的博客 1135

【笔记】python的嵌套:字典列表、在字典中存储列表、在字典中存储字典

文章目录一、python的嵌套二、字典列表三、在字典中存储列表五、在字典中存储字典 一、python的嵌套 二、字典列表 三、在字典中存储列表 五、在字典中存储字典

qq_51843109的博客 1万+

VS2022 LNK1168无法打开进行写入 解决办法

C语言编程---VS---错误和警告---链接器工具错误---LNK1168--无法打开进行写入

weixin_67166415的博客 7161

Ubuntu终端一键安装英伟达驱动:无需手动下载的完整指南

本文提供了一份在Ubuntu系统上通过终端命令一键安装英伟达显卡驱动的完整指南。该方法利用官方PPA源,无需手动下载驱动文件,可自动检测硬件并安装最佳版本,极大简化了流程,适合深度学习环境搭建等场景,有效提升安装效率与稳定性。

weixin_29232121的博客 180

字典{}

1. 字典 dict 用{}来表示 键值对数据 {key:value} 唯一性 键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键 值 没有任何限制 2. 增删改查 字典的增加: dic[key] = value       #强制增加 dic = {'...

awmd39947的博客 3507

AMBA-CHI协议详解(三)

Write Transactions、Atomic transactions、 Stash transactions、 Dataless transactions的等各个事务的事务流。

Crazzy_M的博客 3180

python中字典的定义及创建字典

一、字典(dictionary) 字典和列表类似,也是可变序列,只是与列表不同,它是无序的可变序列,保存的内容是以“键——值对”的形式存放,这类似于我们使用查找汉字的新华字典,它可以把拼音和汉字串起来,通过拼音音节表来快速查找到想要找的汉字。其中新华字典里面的音节表相当于(键)对应的汉字相当于值(value)。键是惟一的,而值可以是多个。字典在定义一个包含多个命名字段的对象时有很大用处。 **说明...

qq_46089299的博客 1万+

“软开关”硬技术!ZVS和ZCS到底谁更牛?看完这个例子你就懂了!

❌ ZVS 和 ZCS 是万能的?→ 不,它们都有实现条件,谐振参数选不好照样硬拐弯!❌ 只要有谐振就一定ZVS?→ 不,一定要设计合适的死区时间和负载条件才行!ZVS 是让电压先“冷静”,ZCS 是让电流先“退场”。一个是开门不撞墙,一个是关门不甩门。懂了它们,功率设计就是在跳华尔兹而不是打架!💃🔌。

weixin_43199439的博客 1239

基于STM32、HAL库的ATMXT1066TD触摸屏控制器驱动程序设计

0x11) // 0x11是ATMXT1066的家族ID。// 最多支持10点触摸。// 足够存储10点触摸数据。

corlin6688的博客 164

python字典的常用方法与字典的嵌套

python字典的常用方法与字典的嵌套。和列表、字符串一样,字典也内置了很多方法供我们使用,调用方法时,写成字典名.方法名()的形式,字典名和方法名之间要用连接。下面的字典students以键值对的形式,保存了这次编程考试中所有同学的成绩。接下来我们以它为例,了解一下字典都有哪些常用方法吧~

qq_31667253的博客 1566

Unreal 从入门到精通之VR常用操作

本文总结了使用Unreal5开发VR项目时遇到的常见问题及其解决方案。首先,介绍了如何通过VRPawn的TryTeleport函数设置玩家视角位置,确保头显移动时安全区域的正确传送。其次,详细说明了如何在Unreal中播放视频,包括导入视频文件、创建媒体播放器和媒体纹理,并将其应用到3D物体上。接着,讲解了如何播放VR全景视频,建议使用MediaPlate媒体板并调整几何体为球体。最后,讨论了如何手动打开和关闭VR模式,以便在PC模式和头显模式之间切换。这些方法为VR开发提供了实用的技术指导。

TxNet 952

12.Python从入门到精通—Python字典,创建字典,访问字典的值,修改字典,删除字典,字典键的特性,字典内置函数和方法

在Python中,字典的键必须是不可变的对象。这是因为字典是基于哈希表实现的,哈希表的实现需要使用键的哈希值来查找和存储对应的值。如果键是可变的对象,那么在修改键时,它的哈希值也会发生变化,这将导致在哈希表中无法正确地查找和存储对应的值。需要注意的是,字典是无序的,因此不能使用索引来访问其中的元素。在这个示例中,“apple”、"banana"和"orange"是键,它们分别对应的值为2.99、0.99和1.49。需要注意的是,如果尝试使用不存在的键来访问字典中的值,将引发KeyError异常。

weixin_50804299的博客 5839

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python从入门到精通——最全字典操作详解(字典遍历、字典嵌套)

文章目录1、字典初识2、访问字典中的值3、字典元素操作3.1 字典内添加键-值对3.2 删除键-值对3.3 修改字典中的值3.4 多行表示字典4、字典遍历4.1 遍历字典所有的键-值对4.2 遍历字典中的所有键4.3 按特定顺序遍历字典中的多有键4.4 遍历字典中的所有值 1、字典初识 字典定义: Python中,字典是一系列键-值对。每个键都与一个值相关联。 访问方式: 通过键访问与之关联的值,...

PursueWin的博客 1710

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

再字典中存储列表,在列表中存储字典,在字典里储存字典。

再字典中存储列表: 经常需要再列表中包含大量的字典,而其中每个字典都包含“特定属性”的众多信息。 # 创建30个外星人 for alien_number in range(0, 30): new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_alien) # 修改部分外星人数据...

KR_Monster的博客 5477

Canopen字典环境配置及字典创建

移植canfestival库实现canopen协议

weixin_47902631的博客 3135

python字典包含字典_Python字典教学

python字典包含字典 Python offers a variety of data structures to hold our information —the dictionary being one of the most useful. Python dictionaries quick, easy to use, and flexible. As a beginning prog...

cumei1658的博客 4574

python入门5:字典、遍历字典、字典嵌套

python入门5:字典、遍历字典、字典嵌套

weixin_46080995的博客 1421

python字典嵌套字典取值-python中字典嵌套

字典里的键可以是数字,字符串,也可以是元组:其对应的值可以是Python支持的任何类型对象,如除了数字,字符串,也可以是列表,元组,或者字典。因此产生了字典嵌套使用问题。字典嵌套字典在多重关系,多行记录下可以考虑字典嵌套字典的方式。如一个餐厅有很多桌子,每一个桌子又对应着若干个消费者就餐记录。显然一个餐厅就记录着两层关系,首先一个桌子对应的若干消费记录可以看成一行数据,N行就有n个消费记录。1号桌...

weixin_39951378的博客 5366

Python入门之字典

是一种可以通过名称来访问其各个值的数据结构。是python中唯一的内置映射类型,其中的值排列,而是存储在下。键可以是。

2501_90434822的博客 1955

Python 字典中嵌套字典的方法

Python 字典中嵌套字典的方法 在字典中嵌套字典的效果 {‘1’: {‘key1’: ‘value1’, ‘key2’: ‘value2’}, ‘2’: {‘key1’: ‘value1’, ‘key2’: ‘value2’}, … ‘n’:{‘key1’: ‘value1’, ‘key2’: ‘value2’}} 首先创建一个字典dict 再创建字典中的字典innerdict 直接使用字典添加键值对的方法添加,只不过value为一个字典 dict={} innerdict={'key1': 'valu

Llmzw的博客 2万+

python中字典的定义与如何创建字典

字典(dict)的定义 有关字典的定义: - 字典是一个无序的数据类型,使用print输出时,通常与定义顺序不一致 - 定义字典时,使用{}或dict()。此时就揭示了为什么集合定义空集时不可直接使用大括号,而要使用set([]),因为字典对应的也是大括号。 - 字典的每个键值key=>value对用冒号':'分割;每个键值对之间用逗号','分割。格式为 d = {key1:value1,key:value2} '键值对'引申理解: 1)键一般时唯一的,如果重复最后的

ly_qiu的博客 1万+

什么是字典以及字典的特性

一  什么是字典 dict全称dictionary,使用键-值(key-value)存储,value值可以是任意数据类型: int,float,long, complex, list, tuple,set, dict 1) 定义一个空字典 定义空字典:{ } ,dict( ) 2) 根据已有的数据创建字典 d = dict(a=1, b=2) print(d, type(d)) ...

weixin_42668123的博客 5579

python 字典和嵌套字典排序

正常字典的排序我们都知道,像这样 a={100:1,101:0,102:2} b=sorted(a.items(),key=lambda x:x[1]) 就会输出如下结果 [(101, 0), (100, 1), (102, 2)] 那如果是嵌套字典呢,比如 a={100:{'x':1,'y':2},101:{'x':2,'y':0},102:{'x':0,'y':...

banzhuan133的博客 6538

python嵌套字典读取_python 字典,字典嵌套,字典遍历

字典(Dictionary)操作详解字典为键值的形式,一个键对应一个值Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。一、创建字典字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1 dict = {'name': 'sunzhicheng', 'age': '20', 'sex': 'boy'}不可变类型:整型,字符串,元组 :...

weixin_39991148的博客 2640
上一篇: 元组
下一篇: 集合
可爱软萌喵酱
博客等级 码龄5年 100粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值