Python零基础入门(八)——字典与集合

news2024/11/30 15:32:11

系列文章目录

个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页
Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟
码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊


文章目录

  • 系列文章目录
  • 导语
  • 字典
    • 字典的创建和删除
    • 通过“键值对”访问字典
    • 遍历字典
    • 添加、修改和删除字典元素
    • 字典推导式
  • 集合
    • 集合的创建和删除
    • 集合的添加和删除
    • 集合的交集、并集和差集运算
  • 列表、元组、字典和集合的区别
  • 结语

导语

欢迎来到本系列教程的第八篇,这一篇博客将介绍关于字典和集合的基础知识。字典和集合是 Python 中常用的数据结构,它们可以用于存储和处理各种类型的数据。在本篇博客中,我们将一步步介绍字典的创建、访问和操作,以及集合的创建和运算。

字典

字典和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以 “键值对(key-value)” 的形式存放的,即,字典中的每个元素由一个键和一个值组成,键和值之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。字典的键必须是唯一的,而值可以是任意类型的对象

字典的创建和删除

在 Python 中,可以使用花括号 {} 和冒号来创建一个字典。例如:

person = {"name": "Alice", "age": 25, "gender": "female"}

也可以使用内置的 dict() 函数来创建字典。例如:

person = dict(name="Alice", age=25, gender="female")

要删除字典,可以使用 del 语句。例如:

person = {"name": "Alice", "age": 25, "gender": "female"}
del person

另外,如果只是想删除字典的全部元素,可以使用字典对象的 clear() 方法实现。执行 clear() 方法后,原字典将变为空字典。下面的代码将清除字典的全部元素:

person. clear()

除了上面介绍的方法可以删除字典元素,还可以使用字典对象的 pop() 方法删除并返回指定 “键” 的元素,以及使用字典对象的 popitem() 方法随机地移除字典中的一个键值对,并返回被移除的键和值。

通过“键值对”访问字典

可以通过字典中的键来访问对应的值。例如:

person = {"name": "Alice", "age": 25, "gender": "female"}
print(person["name"])

输出结果为:

Alice

如果访问的键不存在,将会抛出 KeyError 异常。为了避免这种情况,可以使用 get() 方法来获取值。例如:

person = {"name": "Alice", "age": 25, "gender": "female"}
print(person.get("height", "Unknown"))		# get 方法设置默认值,当指定的键不存在时,得到的结果就是指定的默认值。

输出结果为:

Unknown

遍历字典

Python 中,字典对象提供了 items()values()keys() 方法,用于返回字典的 “键值对”、值和键列表,可以通过 for 循环遍历该字典的 “键值对”、值和键列表:

person = {"name": "Alice", "age": 25, "gender": "female"}
for key, value in person.items():
    print(key, value)
for value in person.values():
    print(value)
for key in person:		# 等效于 for key in person.keys():	
    print(key)
'''
输出:
name Alice
age 25
gender female
Alice
25
female
name
age
gender
'''

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

可以使用赋值运算符来添加、修改和删除字典的元素。例如,添加新的键值对:

person = {"name": "Alice", "age": 25, "gender": "female"}
person["height"] = 165

修改已有键的值:

person = {"name": "Alice", "age": 25, "gender": "female"}
person["age"] = 26

删除指定键的键值对:

person = {"name": "Alice", "age": 25, "gender": "female"}
del person["gender"]

当删除一个不存在的键时,将抛出 KeyError 异常。因此,需要将上面的代码修改为以下内容,从而防止删除不存在的元素时抛出异常:

person = {"name": "Alice", "age": 25, "gender": "female"}
if "gender" in person:
	del person["gender"]
print(person)

字典推导式

字典推导式是一种简洁创建字典的方法,类似于列表推导式。它可以根据一个表达式和一个可迭代对象来创建字典。例如,将列表的元素作为键,其平方作为值创建字典:

numbers = [1, 2, 3, 4, 5]
squared_dict = {x: x**2 for x in numbers}
print(squared_dict)

输出结果为:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

集合

集合是一种无序、不重复元素的数据结构。集合中的元素可以是任意类型的(如整数、浮点数、字符串、元组等),它有可变集合(set) 和不可变集合(frozenset) 两种。这里所要介绍的 set 集合是可变序列。在形式上,集合的所有元素都放在一-对大括号 “{}” 中,两个相邻元素间使用逗号 “,” 分隔。集合最好的应用就是成员检测和去重,因为集合中的每个元素都是唯一的。

集合的创建和删除

在 Python 中,可以使用花括号 “{}” 或 set() 函数来创建一个集合。例如:

fruits = {"apple", "banana", "cherry"}
nums = {3,1,4,1,5,9,2,6}
set1 = {'Python',28,('人生苦短','我用Python')}

使用 set() 函数将列表、元组等其他可迭代对象转换为集合:

fruits = set("人生苦短,我用Python")
nums = set([3,1,4,1,5,9,2,6])
set1 = ( ('Python',28,('人生苦短','我用Python')) )

要删除集合,可以使用 del 语句。例如:

fruits = {"apple", "banana", "cherry"}
del fruits

注意

  1. 在创建集合时,如果输入了重复的元素,Python 会自动只保留一个。
  2. 由于 Python 中的 set 集合是无序的,所以每次输出时元素的排列顺序可能不同。
  3. 创建集合时推荐采用 set() 函数实现。这是因为在创建空集合时,只能使用 set() 函数实现,而不能使用一对大括号 “{}” 实现,在 Python 中,直接使用一对大括号 “{}” 表示创建一个空字典。

集合的添加和删除

可以使用 add() 方法向集合中添加元素。例如:

fruits = {"apple", "banana", "cherry"}
fruits.add("orange")

可以使用 remove() 方法或 discard() 方法删除集合中的元素。它们的区别在于,remove() 方法在元素不存在时会抛出 KeyError 异常,而 discard() 方法不会。例如:

fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
fruits.discard("orange")

另外,如果只是想删除集合的全部元素,可以使用集合对象的 clear() 方法实现。执行 clear() 方法后,原集合将变为空集合。还可以使用集合对象的 pop() 方法随机移除并返回一个元素。

集合的交集、并集和差集运算

集合最常用的操作就是进行交集、并集和差集运算。例如,交集运算使用 & 符号,并集运算使用 | 符号,差集运算使用 - 符号:

fruits1 = {"apple", "banana", "cherry"}
fruits2 = {"banana", "orange", "pear"}
intersection = fruits1 & fruits2
union = fruits1 | fruits2
difference = fruits1 - fruits2

列表、元组、字典和集合的区别

数据结构是否可变是否重复是否有序定义符号
列表可变可重复有序[]
元组不可变可重复有序()
字典可变可重复无序{key:value}
集合可变不可重复无序{ }

结语

在本篇博客中,介绍了 Python 中的字典和集合。列字典是一种键值对的数据结构,用于存储和管理可变的数据集合,而集合是一种无序、不重复元素的数据结构,用于高效地进行成员检测和去重。

希望本篇博客对你学习 Python 有所帮助。祝你在学习 Python 的过程中取得成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/768554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zookeeper伪分布式安装

1、环境准备 需要有jdk1.8 2、安装 (1)将zookeeper的安装包上传到/opt/modules目录下 (2)解压 [rootdatacollection modules]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/installs/(3)更名…

nacos配置管理模型

nacos配置管理模型 Nacos(全称为"Naming and Configuration Service")是阿里巴巴开源的一款用于实现服务发现、动态配置和服务管理的产品。它提供了面向微服务架构的注册中心、配置中心和命名服务,并以高可用性、可扩展性和容错性…

SQL Server 存储过程入门

SQL Server 存储过程入门 1.存储过程的定义:2.存储过程的作用与好处:3.存储过程的基本语法:(1)创建(2)使用 4.存储过程的3个示例:(1)创建一个Contact表的名为…

6.6Jmeter远程调度Linux机器Jmeter测试

1、配置Agent和启动 1.1、打开jmeter/bin目录下的jmeter.properties 1、server_port1099取消注释 2、remote_hosts127.0.0.1 改为remote_hosts127.0.0.1:1099 或者是remote_hostsAgent机的ip:1099 3、server.rmi.localport1099 4、server.rmi.ssl.disablefalse改为true&#x…

MySQL5.7升为8.0新指南

MySQL5.7升为8.0新指南 一、效果图 俗话说的好:有图有真相 升级前 升级后 二、核心思路 以官方教程为主,各种博文为辅,实践出真知 官方教程网址:https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html 重点内容重…

微信小程序——字符串截取

indexOf() : 判断一个字符是否在字符串 中 存在,如果存在返回该元素或字符第一次出现 的 位置 的 索引,不存在返回-1。 lastIndexOf() : 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。…

Go语言之文件操作,读写文件,其他文件操作

编码 ASCII表 众所周知,计算机起源于美国,英文只有26个字符,算上其他所有特殊符号也不会超过128个。字节是计算机的基本储存单位,一个字节(bytes)包括八个比特位(bit),能够表示出256个二进制数字,所以美国人在这里只是…

大语言模型:从应用到产出;百度网盘推出AI的图搜功能

🦉 AI新闻 🚀 百度网盘推出基于AI的高级图搜功能,提供更精确、全面的搜索结果 摘要:百度网盘近日推出了一项名为“高级图搜”的AI功能。通过基于向量的语义搜索,该功能可以理解时间、地点、人物、事件等组合搜索语句…

LeetCode 热题 100(二):滑动窗口。3. 无重复字符的最长子串、 438.找到字符串中所有字母异位词

滑动窗口例题: 一、3. 无重复字符的最长子串 题目要求:就是说找到包含不同字母最长的串。 思路:可以想到使用set去重,同时应用滑动窗口。本质上还是双指针法,l是窗口左边界 r是窗口右边界。 如果set包含了当前字母就…

Can总线概述

1:Can总线简介 CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,由德国BOSCH公司开发,并最终成为国际标准(ISO 11898-1),是一种串行数据通信总线。 在当前…

webpack-theme-color-replacer+elementui自定义配置主题色

webpack-theme-color-replacer原理是通过获取到配置数组里的颜色值,在触发换色方法时,elementui使用的颜色值存在与配置表中颜色一致的颜色,则改颜色会被替换成新的颜色值。 若是自定义的css文件,需要配置css文件路径 若是需要修…

视频弹题、视频答题来实现视频防录屏和防挂机

视频弹题、视频答题来实现视频防录屏和防挂机 1.视频播放到某个时间点,弹出问题卡,学员只有正确回答课件视频中弹出的问题之后才能继续观看视频。 2.通过互动问答的方式,不仅有利于巩固前边学习的知识点,评估学员的学习效果&#…

ShardingSphere分库分表实战之水平分库和水平分表

🚀 ShardingSphere 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜&…

边框动画 单边追随

时间短就直接看第三个使用 clip-path animation 完成。 <!DOCTYPE html> <html><head><style>/* 第一个 */.btn {width: 100px;height: 40px;background: yellow;position: relative;display: flex;align-items: center;justify-content: center;bor…

Unity游戏源码分享-单车骑行游戏

Unity游戏源码分享-单车骑行游戏 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88057717

【问题总结】Docker环境下备份和恢复postgresql数据库

目录 文章目录 以从备份恢复forest_resources库为例一、备份数据库二、需要还原的数据库准备1 删除掉远程的库。2 重新创建一个空的库。可以使用sql3 找到数据库存放的路径&#xff0c;并将备份文件上传到对应的路径下 三、 进入docker容器内部&#xff0c;执行数据库恢复附录…

C++拷贝构造函数原理解析

喵~ 一、构造函数1.1 默认构造函数1.2 自定义的默认构造函数1.3 自定义带参数的构造函数 二、拷贝构造函数的基本使用2.1 浅拷贝和深拷贝&#xff08;原理及区别&#xff09; 一、构造函数 在C面向对象的学习中&#xff0c;对于构造函数应该并不陌生&#xff0c;有默认的构造函…

第47节:cesium 热力图效果(含源码+视频)

结果示例: 完整源码: index.html中增加<script src="./static/lib/heatmap.js"></script> heatmap.js /** heatmap.js v2.0.5 | JavaScript Heatmap Library** Copyright 2008-2016 Patrick Wied <heatmapjs@patrick-wied.at> - All rights re…

了解 3DS MAX 3D摄像机跟踪设置:第 7 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 在SynthEyes中跟踪素材 步骤 1 打开SynthEyes软件。 打开合成之眼 步骤 2 在跟踪素材之前&#xff0c;您需要设置首选项。因为&#xff0c;你 稍后将在 3ds Max 中工作&#xff0c;必须根据 3ds Max…

双电源并用问题与解决方案

双电源并用问题 曾经有客户在电源模块应用过程中出现过这样的应用场景&#xff0c;如下图1所示。客户使用两路电源给后端电路进行供电&#xff0c;要求在不断电的情况下切换输入电源&#xff0c;此过程中发现后端电路会出现损坏。对各个节点波形进行分析后发现&#xff0c;在给…