【python 基础篇 七】python的常用数据类型操作——字典
liuian 2024-11-28 00:43 52 浏览
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))#输出 33.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管理员限制)
-
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浏览器官方网)
-
1、首先打开手机,在手机桌面上找到自己手机应用商店,然后点击进入。2、进入到应用商店界面中,在应用商店中搜索uc浏览器下载即可。3、安装后便会出现在桌面上。UC浏览器(UCBrowser)是UCMobileLimited在2004年8...
-
2025-12-27 01:05 liuian
-
- 32位office2010下载(32位office2013)
-
1、先下载office2010完整安装包免费版。2、最开始安装的时候,需要借助一款微软专用清理工具:msiclear。下载软件后双击msicuu2.exe运行软件。3、运行msicuu2.exe后发现桌面没有快捷方式,在窗口-所有程序中...
-
2025-12-27 00:05 liuian
- 台式电脑如何设置定时关机时间
-
设置电脑指定时间自动关机的方法有两种:方法一:点击电脑屏幕左下角的【开始】按钮,并搜索【计划任务】。点击进入【计划任务】页面中,并选择【创建基本任务】。在创建基本任务的页面中输入【名称】和【描述】,点...
- 台式键盘fn键在哪里(键盘上找不到fn键)
-
错误。原因是大部分台式电脑的键盘上都有fn键,虽然fn键通常不像笔记本电脑一样与其他按键组合使用,但它可以单独使用来调节音量、屏幕亮度等功能。fn键起源于笔记本电脑,它的功能键组合可以帮助使用者快速地...
- 怎么用手机控制家里的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盘...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
