基本数据类型-字典

Python基本数据类型之字典 摘要:Python基本数据类型之字典:字典的性质、字典的基本操作、字典的方法、字典的推导式形式。 阅读详情

本节主要内容:

       1. 字典的简单介绍

       2. 字典增删改查和其他操作

       3. 字典的嵌套


     一. 字典的简单介绍

       字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯⼀一的. 在保存的时候, 根据key来计算出⼀一个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的, 如果你搞不懂什什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的, 那么可哈希就意味着不可变. 这个是为了了能准确的计算内存地址⽽而规定的.

已知的可哈希(不可变)的数据类型: int, str, tuple, bool 不可哈希(可变)的数据类型: list, dict, set

语法 :

   {key1: value1, key2: value2....}

注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据


# 合法

dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅 哥', '美⼥女女'], (1, 2, 3): '麻花藤'}

print(dic[123])

print(dic[True])

print(dic['id'])

print(dic['stu'])

print(dic[(1, 2, 3)])

# 不合法

# dic = {[1, 2, 3]: '周杰伦'}   # list是可变的. 不不能作为key

# dic = {{1: 2}: "哈哈哈"}     # dict是可变的. 不不能作为key

dic = {{1, 2, 3}: '呵呵呵'}    # set是可变的, 不不能作为key
dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽而hash表 不是连续的. 所以不能进⾏行行切片⼯工作. 它只能通过key来获取dict中的数据

二. 字典的增删改查和其他相关操作

   1. 增加


dic = {}

dic['name'] = '周润发'     # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict

dic['age'] = 18 print(dic)

# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值

dic.setdefault('李嘉诚')   # 也可以往⾥里里⾯面设置值.

dic.setdefault("李嘉诚", "房地产")    # 如果dict中已经存在了. 那么setdefault将不会 起作用

print(dic)


2. 删除


ret = dic.pop("jay")

print(ret)

del dic["jay"] print(dic) # 随机删除.

ret = dic.popitem() # 清空字典中的所有内容 dic.clear()


3. 修改


dic = {"id": 123, "name": 'sylar', "age": 18}

dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}

dic.update(dic1)    # 把dic1中的内容更更新到dic中. 如果key重名. 则修改替换. 如果不不存 在key, 则新增.

print(dic)

print(dic1)


4. 查询

       查询一般⽤用key来查找具体的数据.

print(dic['name'])

# print(dic['sylar'])     # 报错

rint(dic.get("ok"))
print(dic.get("sylar"))      # None

print(dic.get("sylar", "⽜牛B"))   # ⽜牛B


5. 其他相关操作


dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐比"}

print(dic.keys())   # dict_keys(['id', 'name', 'age', 'ok']) 不不⽤用管它是什什么.当 成list来⽤用就⾏行行

for key in dic.keys():

   print(key) print(dic.values())

    # dict_values([123, 'sylar', 18, '科⽐比']) 一样. 也当 list来⽤用

for value in dic.values():

   print(value)

print(dic.items())  # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科比')]) 这个东西也是list. 只不过list中装的是tuple for key, value in dic.items():  # ?? 这个是解构

   print(key, value)

# 解构

a, b = 1, 2

print(a, b)

(c, d) = 3, 4

print(c, d)

e, f = [1, 2, 3]    # 解构的时候注意数量必须匹配

print(e, f)


三. 字典的嵌套

# 字典的嵌套

dic1 = {  

   "name": "汪峰",

   "age": 18,

   "wife": {

       "name": '章⼦子怡',

       "age": 28

   },

   "children": ['第⼀一个⽑毛孩⼦子', '第⼆二个⽑毛孩⼦子'],

   "desc": '峰哥不不会告我吧. 没关系. 我想上头条的' }

print(dic1.get("wife").get("name"))
print(dic1.get("children"))

print(dic1.get("children")[1])

三. 字典的遍历

遍历字典: keys() 、values() 、items()  

1. xxx.keys() : 返回字典的所有的key 返回一个序列,序列中保存有字典的所有的键

  效果图:

  代码:

1

2

3

4

5

6

7

8

# keys() 该方法会返回字典的所有的key

#  该方法会返回一个序列,序列中保存有字典的所有的键

d = {'name':'孙悟空','age':18,'gender':'男'}

print(d.keys())

print()

# 通过遍历keys()来获取所有的键

for k in d.keys() :

  print(k , d[k])

2. xxx.values() : 返回字典所有的值

  效果图:

  代码:

1

2

3

4

5

# values()

# 该方法会返回一个序列,序列中保存有字典的所有的值

d = {'name':'孙悟空','age':18,'gender':'男'}

for v in d.values():

  print(v)

3. xxx.items() : 返回字典中所有的key = values 返回一个序列,序列中包含有双值子序列

  效果图:

  代码:

1

2

3

4

5

6

7

8

9

# items()

# 该方法会返回字典中所有的项

# 它会返回一个序列,序列中包含有双值子序列

# 双值分别是,字典中的key和value

d = {'name':'孙悟空','age':18,'gender':'男'}

print(d.items())

print()

for k,v in d.items():

  print(k, '=', v)

练习:

dic1 = {

   'name':['alex',2,3,5],

   'job':'teacher',

   'oldboy':{'alex':['python1','python2',100]}

   }

1,将name对应的列列表追加⼀一个元素’wusir’。

2,将name对应的列列表中的alex⾸首字母⼤写。

3,oldboy对应的字典加⼀一个键值对’⽼男孩’,’linux’。

4,将oldboy对应的字典中的alex对应的列列表中的python2删除。

runtime 字典解析转实体model,支持基本数据类型属性,支持递归解析 最近自己尝试封装一些iOS开发中常用的库,在所有面向对象语言开发环境中,数据业务处理我们偏向用实体model来编写业务代码。 在iOS客户端mvc架构模式中,网络层返回的json转化为字典后,我们经常会将字典转换成对应的实体model。 iOS中字典和实体model转化是利用runtime,动态遍历Class所有属性Property,构造属性get,setter方法,再利用objc_msgSend 阅读详情

相关推荐

python基本数据类型-字典

json 是一种存储数据的格式!常见的存储数据的格式:xml/html/json!python 中的字典就是json 对象!字典是python中唯一实现映射关系的内置类型。python 最常用的类型:String、list、字典!列表是有序的对象集合,字典是无序的对象集合。字典用"{ }"标识。字典由索引(key)和它对应的值value 组成。注意:字典中元素的值可以取任何数据类型,但元素的键必须是不可变且可哈希的类型;可哈希性:对象必须实现__hash__()

目前正在学习python,后面陆续更新自己整理的知识点~ 1438

数据类型:字典

数据类型:字典

wgchen 294

RC电路(一):微分|积分

的取值不同,会导致输出波形和输入波形之间的关系也不同,由此也会产生不同的应用。输出为0,随着电容充满电,运放-输入端得到的分压为正最大值,可等效成一个电压源,且电压不可突变,此时电流反向为最大值,开始充电时的容抗为0,电压不可突变则电压差为0,运放。开始充电时的容抗为0,电压不可突变则电压差为0,运放。输入端得到的分压也不可突变,随着电容放完电,于是。,因电容上电压不能突变(来不及充电,相当于短路,由上分析可得积分运算电路中,输出为运放的负最大峰值,随着电容充满电,输出为运放的正最大峰值,随着电容放完电,

既有随处可栖的江湖,也有追风逐梦的骁勇! 1万+

python基础——数据类型(七)字典

字典(dictionary)是python语言中唯一的标准映射类型,是python中除了列表以外最灵活的数据类型。字典是一种无序的、可变的序列,元素以"键值对"的形式进行存储,是可变的容器,容量是无限的。字典的键值是hashable值,即所有不可变类型的值(基于对象标识而非值进行比较的对象),可变类型不能用作键,且键值一定是唯一的,不能出现多次,否则只会保留最后出现的一个键值对。注意:数字类型用作键时遵循数字比较的一般原则:即两个近似数值相等的值会被用来作为一个键值索引同一条字典条目。

xiaohei07的博客 3414

液晶屏LVDS接口:【图文详讲】

​LVDS(Low Voltage Differential Signaling,即低电压差分信号)接口又称RS-644总线接口,是20世纪90年代才提出的一种数据传输和接口技术。LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式

weixin_66299220的博客 1万+

NVIDIA显卡在Linux下的功率限制问题:RTX 3060 Laptop的解决方案与避坑指南

本文针对NVIDIA RTX 3060 Laptop显卡在Linux系统下遭遇功率限制的问题,提供了详细的诊断与解决方案。通过使用nvidia-smi工具监控显卡状态,并重点介绍了通过升级驱动、启用nvidia-powerd服务来激活Dynamic Boost 2.0功能,从而安全、智能地解锁额外显卡功率,有效提升性能。

weixin_29290947的博客 636

【0017】Python数据类型-字典类型详解(全网最细教程)

Python字典是一种内置的数据结构,它以键值对(key-value pair)的形式存储数据。字典是Python中非常强大且灵活的数据类型之一,广泛应用于各种编程场景中。掌握它的使用对于提高编程效率和解决实际问题具有重要意义。无论是初学者还是有经验的程序员,都应该熟练掌握字典的相关操作和应用场景。

一个结构化、系统化学习IT知识的优秀博客 2971

Git GUI学习教程

学习宗旨:快速应用,不易忘记 很遗憾,申请Git的专栏未审批,那我就不再写专栏了,把最近的学习心得写一下,我也是在学习中进行,有任何问题直接留言,回复交流,我还采用思路+实践模式快速过。 目录 1、Git是什么 2、远程仓库 1)GitHub: 2)Gitee(码云): 3、安装Git(Windows) 1)下载 ...

Alexantao 的专栏 7254

Python 基础语法:基本数据类型(字典)

字典(dictionary)是Python中的一种可变的数据类型,它用于存储键(key)和值(value)的映射关系。键必须是唯一的,而值可以是任何数据类型。

moment159的博客 2293

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

Vue3 + uniapp 踩坑:iOS 真机调试一直报错Maximum call stack size exceeded,和(in promise)MiniProgramError err的解决方法

不是你写错代码,是微信开发工具和 iOS 真机调试的兼容问题。开个空项目都报错,勾个设置就没问题,不是你,是工具的锅。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1267

数据类型(字典)

前面讲了列表的各种操作: 这里我们要讲的是字典,有人说,字典是Python最强大的功能,能包含万物!让我们进入主题吧! 1、字典dict   字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的(自Python3.6后,默认是有序的),且key必须是可哈希...

banjun1329的博客 494

【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器

【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1072

python基本数据类型 - 字典&集合

字典是可变类型的容器数据类型,可以存储任意数据类型的对象。{}内用逗号分隔开多个key:value,其中value可以是任意类型的值,key必须是不可变类型(字符串、数字、元组),一般是对value具有描述性质的字符串,键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。# 创建字典的两种方式dic = {'x': 'x', 'y': 'y'} # 方式一dic = dict(x='x', 'y'=y) # 方式二在{}内用 , 分隔开多个元素,

nhb000000的博客 1096

DSPy 入门: 再见提示,你好编程

DSPy("Declarative Self-improving Language Programs (in Python)",发音为 "dee-es-pie")[1] 是斯坦福大学 NLP 研究人员开发的 "基础模型编程 "框架。它强调编程而非提示,并将构建基于 LM 的管道从操作提示转向编程。因此,它旨在解决构建基于 LM 应用程序时的脆弱性问题。DSPy 还将程序的信息流与每一步的参数(提示和 LM 权重)分离开来,为构建基于 LM 的应用程序提供了更系统的方法。

具身机器人和通用AI 3486

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python基本数据类型-dict字典

每一个字典都有key和value,一个字典可以有多个key和多个value,所以说字典是集合类型,因为字典是无序的字典定义举例{key1:value1,key2:value2…}跟set集合的区别是,set只有value值,没有key举例:{1:1,2:2,3:3}字典最重要的功能是通过key访问到value字典正确的访问方式字典数据类型不能有两个相同的key字典类型的key不一定非要是字符串,也可以是数字上图中的key值1和’1’会被识别成两个不同的key字典中的value值可以取python中的任意值,

m0_52132903的博客 278

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

基本数据类型—字典

引子 之前我们已经学过了字典和元组,我们可以把全班同学的名字保存在列表中,并能够对这些名字进行增删改查了。现在我们又有了一个新的需求,我们不仅要保存每个同学的姓名,还想要保存他的年龄、身高等等。应该如何保存呢? 这里可以引导学生像组合列表这里思考:[[name,age,high],[],……,[]] 但是这样就有一个问题,如果我们想修改某一个同学的信息,需要遍历整个列表,这种方式非常麻烦。 ...

weixin_30794851的博客 122

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python 学习 (一) python的基本数据类型 元组 列表 字典

Python基础

BehandTheTime的博客 2286

数据类型-字典-创建和基本操作

数据类型-字典-创建和基本操作 1.字典 2.字典的属性 3.字典的创建 具体操作如下图所示 4.字典的访问 通过key访问value 字典不是通过偏移量来取值的,而是通过键值name、hp来取值的。 (1)单个访问,如下图所示: (2)遍历,如下图所示: 红色框子:在字典d中遍历键,将字典d中的值一一打印出来。 蓝色框子:在字典d中,通过遍历键,打印字典中所存储的值。 (3)方法 通过下述方式可以得知,某个键是否在字典中,返回值是布尔值。 以下将补充遍历字典的方法: 通过dir(dict)可以查看字典所有

xiaocainiao_tao的博客 524

Python基础(五) 基本数据类型④:字典

Python基础(五) 基本数据类型:字典一、字典(dict)二、字典的相关操作1.增2.删3.查4.改5.其他操作三、字典的嵌套 转载请附上原文链接,谢谢合作。 一、字典(dict)   字典是Python中唯一的一个映射类型。他是由 { } 括起来的键值对组成。在字典中key是唯一的,在保存的时候,根据key计算出一个内存地址,然后将key-value保存在这个地址中,也就是hash算法。在d...

胡人天的博客 333

9 基本数据类型之列表,元组和字典

基本数据类型之列表,元组和字典 1 列表 1.1 什么是列表 作用:按照索引/位置存放多个值,可读可改 定义: [ ] 内用逗号分隔开多个任意类型的元素 l1 = [1, 'a', 1.2, [1, 2], {'a': 97}] l1 = list([1, 'a', 1.2, [1, 2], {'a': 97}]) # 定义空列表 l2 = [] l2 = list() 1.2 类型转换 凡是...

健浩的博客 432

Python基本数据类型——字典

Python基本数据类型——字典 一、字典简介 字典dict: 由键值对构成的无序集合(key–value 键(key): 数据类型一般为数字或者字符串,必须是唯一不重复的 值(value): 可以使任意数据类型 二、字典的变量初始化 a = {} b = { 1: 2, #key:数字;value:数字 "k2": "v2", #k...

可爱程序员 1047

Python基本数据类型(字典 集合)

字典 创建字典 字典可以存储任意类型对象,存储格式是kv,kv对用冒号(:)分隔,kv对之间用逗号(,)分隔,最外层用花括号{}括起来,key在字典里类型是可hash的对象,value可以重复,key可以是数字,字符串,元组 # -*- coding:utf-8 -*- dict1 = {'id':1,'name':'aa','age':23} print(type(dict1)) # <...

zZsSzss的博客 513

字典数据类型的基本使用——一种Python内置数据类型

字典是一种映射类型,字典用"{ }"标识,它是一个无序的”键(key):值(value)“对集合。在同一个字典中,键(key)必须是唯一的,但值则不必唯一,值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。字典中的元素是通过键来存取的,而不是通过索引值存取的。

qq_18937049的博客 609

python 字典列表去重_Python基本数据类型之列表、元组、字典、集合及其魔法

列表1.列表可存放任何东西,并且可修改2.列表有序3.列表支持索引与切片4.支持for,while循环,所以列表为可迭代对象5支持in操作,判断元素是否在列表中6可多重索引嵌套列表7.字符串可以转换为列表list():因为其内部使用的是for循环#两者为可迭代对象8.数字不可转列表:不能用for循环,因为数字非可迭代对象9列表转字符串有数字、字符串自己使用for循环只有字符串‘’.join()列表...

weixin_33497518的博客 330
上一篇: 基本数据类型-列表
下一篇: 基本数据类型-集合
raw_recruit0302
博客等级 码龄8年 30粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值