百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

【python 基础篇 七】python的常用数据类型操作——字典

liuian 2024-11-28 00:43 52 浏览

#挑战30天在头条写日记#

1.字典的基本概念

  • 无序的,可变的键值对集合

2.字典的定义

  • 方式1:{key:value,key:value,.....}
    • 例如{“name”:“sz”,“age”:18}
  • 方式2:fromkeys(S,v=None)
    • 静态方法:类和对象都可以调用
    • 类调用:dict.fromkeys("abc",666) 输出:{'a':666,'b':666,'c':666}
    • 对象调用:dic.fromkeys("abc",666)输出:{'a':666,'b':666,'c':666} 此处的dic,是实例化的字典对象
  • 注意
    • key不能重复 当重复时后面会把前面的值覆盖
    • key必须是任意不可变类型
      • 可变类型:列表,字典,可变集合
      • 不可变类型:数值,布尔,字符串,元组
    • key必须是任意不可变类型的原因
      • python的字典,采用哈希表的方式实现
      • 哈希表是一个列表把key---value按某种转换方式,key转换成索引 value转换成值存入表内
  • 字典的存在意义
    • 可以通过key,访问对应的值,使得这种访问变得更具有意义
    • 查询效率得到很大提升
#方式1
person = {"name":"sz","age":18}
print(person["name"])#输出 sz
print(person["age"])#输出 18

#方式2
#类调用
d = dict.fromkeys("abc")
print(d)#{'a': None, 'b': None, 'c': None}
c = dict.fromkeys("abc",666)
print(c)#{'a': 666, 'b': 666, 'c': 666}
d = dict.fromkeys([1,2,3],666)
print(d)#{1: 666, 2: 666, 3: 666}
#对象调用  此方式不常用 没有什么意义
e = {1:2,2:2}.fromkeys([1,2],666)
print(e)#{1: 666, 2: 666}

3.字典的常用操作

3.1 字典的增加操作

  • dic[key] = value
  • 当key在原字典中不存在时,即为新增操作
person = {"name":"sz","age":18}
person["性别"] = "男"
print(person)#输出 {'name': 'sz', 'age': 18, '性别': '男'}

3.2 字典的删除操作

  • del dic[key]
  • dic.pop(key,default(可省略))
    • 删除指定的键值对,并返回对应的值
    • 如果key,不存在,那么直接返回给定的default的值,不做删除操作,如果没有给定值,就会报错
  • dic.popitem()
    • 删除最后的键值对,并以元组的形式返回该键值对,如果字典为空,则报错
  • dic.clear()
    • 删除字典内所有键值对
#del语句
person = {"name":"sz","age":18,"height":185}
del person["name"]
print(person)#输出 {'age': 18, 'height': 185}
del person["name1"]#此时key的值不在字典中会报错

#dic.pop()
person = {"name":"sz","age":18,"height":185}
v = person.pop("name")
print(v)#输出 sz
print(person)#输出 {'age': 18, 'height': 185}

v = person.pop("name1",0)
print(v)#输出 0
print(person)#输出 {'name': 'sz', 'age': 18, 'height': 185}

v = person.pop("name1")#此处会报错,没有key值,同时没有指定default值就会报错

#dic.popitem()
person = {"name":"sz","age":18,"height":185}
result = person.popitem()
print(person)#输出{'name': 'sz', 'age': 18}
print(result)#输出('height', 185)

#dic.clear()
person = {"name":"sz","age":18,"height":185}
person.clear()print(person)#输出 {}

3.3 字典的修改操作

  • 只能改值,不能改key
  • 修改单个键值对
    • dic[key] = value
  • 批量修改键值对
    • oldDic.update(newDic)
#修改单个键值对
person = {"name":"sz","age":18,"height":185}
person["height"] = 186
print(person)#输出:{'name': 'sz', 'age': 18, 'height': 186}

#批量修改键值对
person = {"name":"sz","age":18,"height":185}
person.update({"age":23,"address":"北京","phone":"153555"})
print(person)#输出:{'name': 'sz', 'age': 23, 'height': 185, 'address': '北京', 'phone': '153555'}

3.4 字典查询操作

  • 获取单个值
    • dic[key]
      • 如果key不存在,就会报错
    • dic.get(key,default)
      • 如果不存在对应的key,则取给定的默认值default
      • 如果没有默认值,则为None ,不会报错
    • dic.setdefault(key,default)
      • 获取指定key对应的值,如果key不存在,则会在字典中设置对应的key并赋值为default,并返回该值,如果默认值没有给定,则使用None代替
  • 获取所有的值
    • dic.values()
  • 获取所有的键
    • dic.keys()
  • 获取字典的键值对
    • dic.items()
  • 遍历
    • for in
    • for x,y in info.items
#获取单个值
#- dic[key]
person = {"name":"sz","age":18,"height":185}
print(person["name"])#输出 sz
print(person["name1"])#输出 报错

#- dic.get(key,default)
person = {"name":"sz","age":18,"height":185}
print(person.get("name"))#输出 sz
print(person.get("name1"))#输出 None
print(person.get("name1",0))#输出 0

#- dic.setdefault(key,default)
person = {"name":"sz","age":18,"height":185}
print(person.setdefault("name"))#输出 sz
print(person.setdefault("name1"))#输出 None
print(person)#输出 {'name': 'sz', 'age': 18, 'height': 185, 'name1': None}
print(person.setdefault("name2",0))#输出 0
print(person)#输出{'name': 'sz', 'age': 18, 'height': 185, 'name1': None, 'name2': 0}

#获取所有的值 dic.values()
person = {"name":"sz","age":18,"height":185}
print(person.values())#输出 dict_values(['sz', 18, 185])  列表

#获取所有的键 dic.keys()
person = {"name":"sz","age":18,"height":185}
print(person.keys())#输出 dict_keys(['name', 'age', 'height'])  列表

#获取字典的键值对 dic.items()
person = {"name":"sz","age":18,"height":185}
print(person.items())#输出 dict_items([('name', 'sz'), ('age', 18), ('height', 185)])  列表 元组

#遍历 
#方式一
#先遍历所有的key 然后,根据指定的key,获取到对应的值
person = {"name":"sz","age":18,"height":185}
keys = person.keys()
#遍历所有的key
for key in keys:
    print(key)
    print(person[key])
    
#方式二  
#获取字典
kvs = person.items()#获取的是列表 列表内容为元组
for x,y in kvs:#元组的解包
    print(x)
    print(y)
"""
name
sz
age
18
height
185
"""

3.5 字典的计算

  • len(dic)
    • 计算键值对的个数
person = {"name":"sz","age":18,"height":185}
print(len(person))#输出 3

3.6 字典的判定

  • x in dic
    • 判定dic中的key,是否存在x
  • x not in dic
    • 判定dic中的key,是否不存在x
  • dic.has_key(key) 已经过期,建议使用in来代替
person = {"name":"sz","age":18,"height":185}
print("age" in person)#输出 True
print("address" in person)#输出 False



相关推荐

win10被it管理员限制的原因(win10你的it管理员限制)
win10被it管理员限制的原因(win10你的it管理员限制)

win11显示it管理员已经限制,意思是该用户被管理员进行IP限制了!这是一个筛选功能!用户只能联系管理员了,或者有可能的话换个IP才能继续使用电脑。这种情况应该是由于系统中操作中出错导致的,可以用以下办法解决。  1、按下win+...

2025-12-27 04:05 liuian

win10玩游戏老是弹出输入法(win10玩游戏时总是弹出输入法)

需要工具:电脑一、右击“开始”按钮找到“控制面板”;二、在控制面板打开“时钟、语言和区域”设置界面三、在“语言”设置里点击“添加语言”?四、“更改语言首选项中”单击“添加语言”五、在添加语言设置下拉菜...

登录百度账号注册(登录百度账号注册是啥意思)
  • 登录百度账号注册(登录百度账号注册是啥意思)
  • 登录百度账号注册(登录百度账号注册是啥意思)
  • 登录百度账号注册(登录百度账号注册是啥意思)
  • 登录百度账号注册(登录百度账号注册是啥意思)
什么牌子的笔记本电脑适合大学生

适合大学生使用的笔记本电脑因人而异,取决于个人的需求和预算。以下是一些考虑因素:1.性能:选择性能合适的笔记本电脑,能够满足大学期间的学习、研究和娱乐需求。适当的处理器、运行内存和存储空间都是重要考...

华硕如何进入u盘启动(华硕电脑如何进入u盘启动)

您好!华硕笔记本的启动项设置,一般有两种。1,插上U盘,开机按ESC键,可以快速进入到启动项。2,开机按F2进入BIOS-boot项,可以设置启动项。通常建议第一个方式,比较简单方便,BIOS如果更该...

手机安装打印机的方法和步骤

无论手机还是电脑,连接打印机都需要驱动的。一般来说,支持手机的打印机并不多,如果你想通过手机连接打印机,只需要购买支持手机系统的打印机就行,这并不是一个软件就可以解决的问题。但还有一个方法,可以让手机...

uc浏览器app官方下载(uc浏览器官方网)
uc浏览器app官方下载(uc浏览器官方网)

1、首先打开手机,在手机桌面上找到自己手机应用商店,然后点击进入。2、进入到应用商店界面中,在应用商店中搜索uc浏览器下载即可。3、安装后便会出现在桌面上。UC浏览器(UCBrowser)是UCMobileLimited在2004年8...

2025-12-27 01:05 liuian

ipad冬天充不进电(天冷ipad充不进电)
  • ipad冬天充不进电(天冷ipad充不进电)
  • ipad冬天充不进电(天冷ipad充不进电)
  • ipad冬天充不进电(天冷ipad充不进电)
  • ipad冬天充不进电(天冷ipad充不进电)
32位office2010下载(32位office2013)
32位office2010下载(32位office2013)

1、先下载office2010完整安装包免费版。2、最开始安装的时候,需要借助一款微软专用清理工具:msiclear。下载软件后双击msicuu2.exe运行软件。3、运行msicuu2.exe后发现桌面没有快捷方式,在窗口-所有程序中...

2025-12-27 00:05 liuian

台式电脑如何设置定时关机时间

设置电脑指定时间自动关机的方法有两种:方法一:点击电脑屏幕左下角的【开始】按钮,并搜索【计划任务】。点击进入【计划任务】页面中,并选择【创建基本任务】。在创建基本任务的页面中输入【名称】和【描述】,点...

台式键盘fn键在哪里(键盘上找不到fn键)

错误。原因是大部分台式电脑的键盘上都有fn键,虽然fn键通常不像笔记本电脑一样与其他按键组合使用,但它可以单独使用来调节音量、屏幕亮度等功能。fn键起源于笔记本电脑,它的功能键组合可以帮助使用者快速地...

fast无线路由器设置步骤图解
  • fast无线路由器设置步骤图解
  • fast无线路由器设置步骤图解
  • fast无线路由器设置步骤图解
  • fast无线路由器设置步骤图解
怎么用手机控制家里的wifi(怎么用手机控制家里的wifi不让孩子看电视)

以华为手机P40,EMUI10系统为例,如果想要用手机控制wifi的连接设备,就需要先拥有WiFi设备的管理员密码,用手机控制wifi的连接设备有下列几个步骤:1、需要使用手机下载路由器对应的app,...

外接移动硬盘在电脑上不显示怎么办

答:外接硬盘不显示在我的电脑,这种情况一般是因为USB供电不足导致的,如将移动硬盘用USB连接线连接电脑机箱前置面板,将移动硬盘USB线2个USB插头都插上前面板的USB接口。如果是接机箱后主板USB...

bootice修复win10(bootice修复uefi引导)

制作个PE,然后进入PE修复引导即可,具体操作方法:1、首先准备一个制作好的U盘装机大师U盘启动盘,然后连接好电脑与U盘启动盘。重启电脑,在开机画面出现时按下启动快捷键,选择U盘启动,然后就进入了U盘...