当前位置: 首页 > news >正文

Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法

Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法

目录

  • Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法
    • 一、使用序列生成新字典:使用dict 的fromkeys()方法
    • 二、获取字典中所有的key:使用keys() 方法
    • 三、获取字典中所有键对应的 value:使用values() 方法
    • 四、返回字典中所有的键值对:使用items()方法
    • 五、获取指定的键对应的值
        • 1、使用用`get()`方法获取指定键对应的值
        • 2、使用`setdefault()`方法获取指定键对应的值
    • 六、字典的合并:使用update()方法
    • 七、修改某个元素的值、为字典添加新元素:使用d[key]=value的方法
    • 八、删除元素:使用del语句或pop()、popitem()方法
        • 1、使用`del`语句删除指定的元素
        • 2、使用`pop()`方法删除指定的元素
        • 3、使用`popitem()`方法删除字典中的最后一个元素
    • 九、清空字典:使用clear()方法
    • 十、删除字典:使用 del 语句

一、使用序列生成新字典:使用dict 的fromkeys()方法

使用fromkeys()方法可以使用一个序列建立字典。序列中的元素作为字典中的键,每个键对应相同的值。

fromkeys()方法属于dict类型,而不是字典名。语法格式如下:

dict.fromkeys(iterable, value)
说明:
value可以省略,如果省略value,则使用None为字典的值。

例如:

l1=[1,2,3,4,5]
d1=dict.fromkeys(l1,"请设置民族")
print(d1)程序的运行结果为:
{1: '请设置民族', 2: '请设置民族', 3: '请设置民族', 4: '请设置民族', 5: '请设置民族'}

fromkeys()方法如果省略value,则所有的value被设置为None

例如:

l1=[1,2,3,4,5]
d1=dict.fromkeys(l1)
print(d1)程序的运行结果为:
{1: None, 2: None, 3: None, 4: None, 5: None}

二、获取字典中所有的key:使用keys() 方法

如果需要获取字典中所有的键,可以使用keys()方法。以列表的形式返回字典中所有的键。

keys()方法的语法格式如下:

d_name.keys()

例如:

l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l1=d1.keys()
print(l1)程序的运行结果为:
dict_keys([1, 2, 3, 4, 5])

三、获取字典中所有键对应的 value:使用values() 方法

如果需要返回字典中所有键对应的值,可以使用values()方法。以列表的形式返回字典中所有键对应的值。

values()方法的语法格式如下:

d_name.values()

例如:

l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l1=d1.values()
print(l1)程序的运行结果为:
dict_values(['汉族', '回族', '苗族', '蒙古族', '朝鲜族'])

四、返回字典中所有的键值对:使用items()方法

如果需要返回字典中所有的键值对,可以使用items()方法。

items()方法将字典中的每个键值对作为元素,组成一个元组。所有的键值对对应的元组组成一个列表作为items()方法的返回值。

values()方法的语法格式如下:

d_name.items()

例如:

l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l3=d1.items()
print(l3)程序的运行结果为:
dict_items([(1, '汉族'), (2, '回族'), (3, '苗族'), (4, '蒙古族'), (5, '朝鲜族')])

使用for...in循环可以遍历字典。

例如:

l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
for item in d1.items():print(item)程序的运行结果为:
(1, '汉族')
(2, '回族')
(3, '苗族')
(4, '蒙古族')
(5, '朝鲜族')

遍历字典中的键和值,代码如下:

l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
for key,value in d1.items():print(key, value)程序的运行结果为: 
1 汉族
2 回族
3 苗族
4 蒙古族
5 朝鲜族

五、获取指定的键对应的值

可以使用d_name[key]获取指定的键对应的值,也可使用get()方法与setdefault()方法获取指定键对应的值。

1、使用用get()方法获取指定键对应的值

如果指定的键不存在,则返回None

语法格式如下:

d_name.get(key)

例如:

d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.get(3))
print(d1.get(6))  #key为6不存在,返回None程序的运行结果为: 
回族
苗族
None
2、使用setdefault()方法获取指定键对应的值

get()方法不同的是,使用setdefault()方法获取指定键对应的值时,如果指定的键不存在,则为字典添加键,并指定对应的值。

如法格式如下:

d_name.setdefault(key,value)
说明:
(1)key表示键。
(2)value表示键对应的值。只有当字典中不存在对应的key时,value才生效。

例如:

(1)不指定value

代码如下:

d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.setdefault(3))
print(d1.setdefault(6))  #key为6不存在,value为None,并且把键值对6:value添加到字典中
print(d1)程序的运行结果为: 
回族
苗族
None
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 6: None}

(2)指定value

代码如下:

d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.setdefault(3,'布依族')) #显示3对应的民族:苗族
#key为6不存在,value为None,并且把键值对6:'布依族'添加到字典中
print(d1.setdefault(6,'布依族'))
print(d1)程序的运行结果为: 
回族
苗族
布依族
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 6: '布依族'}

六、字典的合并:使用update()方法

字典的合并是指将一个字典的键值对添加到另一个字典中。使用update()方法可以完成字典的合并。

update()方法的语法格式如下:

d_name.update(d_name2)

例如:

d1={1: '汉族', 2: '回族', 3: '苗族'}
d2={4: '蒙古族', 5: '朝鲜族'}
d1.update(d2)
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}

七、修改某个元素的值、为字典添加新元素:使用d[key]=value的方法

字典是一个可变序列,用户可以对字典中的键值对进行添加和修改。

语法格式如下:

d_name[key]=value
说明:
(1)如果字典中存在指定的key,则修改对应的值。
(2)如果字典中存在指定的key,则添加一个新元素,键值对就是指定的key和value值。

例如:

(1)修改某个元素的值

代码如下:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1[3]='藏族'  #key=3存在,则修改3对应的值
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 3: '藏族', 4: '蒙古族', 5: '朝鲜族'}

(2)添加新元素

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1[7]='藏族'  #key=7存在,则添加一个新元素,键值对为:7:'藏族'
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 7: '藏族'}

八、删除元素:使用del语句或pop()、popitem()方法

删除字典中的元素有三种方法:

1、使用del语句删除指定的元素

使用del语句删除字典中指定的元素。

语法格式如下:

del d_name[key]

例如:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
del d1[3] #删除key=3对应的元素
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 4: '蒙古族', 5: '朝鲜族'}
2、使用pop()方法删除指定的元素

使用pop()方法可以删除字典中指定键的键值对,并返回该键对应的值。

pop()方法的语法格式如下:

d_name.pop[key]

例如:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
x=d1.pop(3)
print(x)
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
苗族
{1: '汉族', 2: '回族', 4: '蒙古族', 5: '朝鲜族'}
3、使用popitem()方法删除字典中的最后一个元素

使用popitem()方法可以删除字典中的最后一个元素,并以元组的形式返回。

popitem()方法的语法格式如下:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
t1=d1.popitem()
print(t1)
print(d1)
t1=d1.popitem()
print(t1)
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
(5, '朝鲜族')
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族'}
(4, '蒙古族')
{1: '汉族', 2: '回族', 3: '苗族'}

九、清空字典:使用clear()方法

使用字典的clear()方法可以删除字典中所有的元素。使用字典的clear()方法清空字典后,字典还在,只是变成了空字典。

例如:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1.clear()
print(d1)程序的运行结果为: 
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{}

十、删除字典:使用 del 语句

如果一个字典不再使用,可以使用del语句删除该字典。

删除字典的语法格式如下:

del d_name

例如:

d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
del d1
print(d1)  #字典d1已经被删除,执行该命令报以下错误程序的运行结果为: 
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject\hello.py", line 4, in <module>print(d1)^^
NameError: name 'd1' is not defined
http://www.lryc.cn/news/606194.html

相关文章:

  • Linux/Ubuntu 系统中打开火狐firefox、chromium浏览器失败
  • 33.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--财务服务--记账
  • Python Day20 os模块 和 文件操作 及 例题分析
  • 智能文本抽取技术:精准识别、定位并提取出关键信息
  • 学以致用——用Docker搭建ThinkPHP开发环境
  • linux线程互斥和同步
  • 在处理大数据列表渲染时,React 虚拟列表是提升性能的关键技术,但在实际实现中常遇到渲染抖动和滚动定位偏移等问题。
  • 大语言模型信息抽取系统解析
  • Tomcat,WebLogic等中间件漏洞实战解析
  • C++异常处理的成本:理解与优化
  • MySQL转PostgreSQL迁移实战:从语法错误到完美兼容
  • AI学习笔记三十三:基于Opencv的单目标跟踪
  • vue3 v-html绑定数据,点击sub实现popover效果
  • STM32 USB 设备中间件 tinyusb
  • 超宽带测距+测角+无线通信一体化模组:智能门锁、智能遥控器、AR头戴、智能穿戴
  • 融媒体中心网络安全应急预案(通用技术框架)
  • Vmvare虚拟机的网络不可达问题
  • Spring Boot 异常处理:从全局捕获到优化用户体验!
  • 爱心烟花浪漫立方体轮播图 - 用代码表达爱意
  • 为Github Copilot创建自定义指令/说明/注意事项
  • 决策树实现回归任务
  • 基于Spring Boot实现中医医学处方管理实践
  • 【Agent,智能,workflow】
  • 【RH134 问答题】第 13 章 运行容器
  • uvicorn 启动重复加载 多次加载
  • [12月考试] B
  • Python 数据科学与可视化工具箱 (一) - 数组属性:`shape`, `dtype`, `ndim`, `size`
  • day28_2025-07-31
  • Valgrind终极指南:深入内存安全与性能瓶颈检测
  • 进程控制:从创建到终结的完整指南