python教学入门:字典和集合

在这里插入图片描述

字典(Dictionary):

在这里插入图片描述

定义:

  • 字典是 Python 中的一种数据结构,用于存储键值对(key-value pairs)。
  • 字典使用花括号 {} 定义,键值对之间用冒号 : 分隔,每对键值对之间用逗号 , 分隔。

特点:

  • 字典中的键必须是不可变的(immutable),通常使用字符串或整数作为键。
  • 字典中的值可以是任意类型的,包括其他字典或集合。

常用操作:

  • 访问元素:可以通过键来访问字典中的值。
  • 修改元素:可以通过键来修改字典中的值。
  • 添加元素:可以使用新的键值对来添加元素到字典中。
  • 删除元素:可以使用 del 关键字或者 pop() 方法删除字典中的元素。
    在这里插入图片描述
    使用关键字参数创建字典:可以通过传递关键字参数来创建一个包含指定键值对的字典。
my_dict = dict(name="Alice", age=30, city="New York")
print(my_dict)  # 输出:{'name': 'Alice', 'age': 30, 'city': 'New York'}

示例:
定义和访问元素:

# 定义一个字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 访问字典中的元素
print(my_dict['name'])  # 输出:Alice
print(my_dict['age'])   # 输出:30
print(my_dict['city'])  # 输出:New York

修改元素:
在这里插入图片描述

my_dict = {'name': 'Alice', 'age': 30}
other_dict = {'city': 'New York', 'age': 35}my_dict.update(other_dict)
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'city': 'New York'}
# 修改字典中的元素
my_dict['age'] = 35
print(my_dict['age'])  # 输出:35

添加元素:

# 添加新的键值对到字典中
my_dict['gender'] = 'Female'
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'city': 'New York', 'gender': 'Female'}

删除元素:
在这里插入图片描述
pop() 方法用于删除字典中指定键的键值对,并返回该键对应的值。如果指定的键不存在,则可以通过可选的 default 参数指定一个默认值,如果键不存在且没有指定默认值,则会引发 KeyError 错误。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 删除键为 'age' 的键值对,并返回对应的值
age = my_dict.pop('age')
print(age)  # 输出:30
print(my_dict)  # 输出:{'name': 'Alice', 'city': 'New York'}# 删除不存在的键,并指定默认值
salary = my_dict.pop('salary', 0)
print(salary)  # 输出:0

在这里插入图片描述
popitem() 方法用于随机删除并返回字典中的一个键值对(通常是最后一个键值对)。如果字典为空,则会引发 KeyError 错误。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 随机删除并返回一个键值对
item = my_dict.popitem()
print(item)  # 输出:('city', 'New York')
print(my_dict)  # 输出:{'name': 'Alice', 'age': 30}

在这里插入图片描述
clear() 方法用于删除字典中的所有键值对,即清空字典,但字典对象仍然存在。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 清空字典
my_dict.clear()
print(my_dict)  # 输出:{}
# 删除字典中的元素
del my_dict['city']
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'gender': 'Female'}

items() 方法
在 Python 中,items() 方法用于返回字典中所有键值对的视图,返回的视图是一个包含键值对的可迭代对象。每个键值对都表示为一个元组,其中第一个元素是键,第二个元素是对应的值。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 获取字典中所有键值对的视图
items = my_dict.items()
print(items)  # 输出:dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])# 遍历键值对视图
for key, value in items:print(f"Key: {key}, Value: {value}")

集合(Set):

在这里插入图片描述

定义:

  • 集合是 Python 中的一种数据结构,用于存储无序且唯一的元素。
  • 集合使用花括号 {} 定义,元素之间用逗号 , 分隔。

特点:

  • 集合中的元素必须是不可变的(immutable),通常使用整数、字符串等不可变类型作为元素。
  • 集合中的元素是唯一的,重复的元素会被自动去重。

常用操作:

  • 添加元素:可以使用 add() 方法向集合中添加新元素。
  • 删除元素:可以使用 remove() 方法删除集合中的元素。
  • 集合运算:支持交集、并集、差集等集合运算。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

示例:
定义和添加元素:

# 定义一个集合
my_set = {1, 2, 3, 'a', 'b', 'c'}# 添加元素到集合中
my_set.add(4)
print(my_set)  # 输出:{1, 2, 3, 4, 'a', 'b', 'c'}

删除元素:

# 从集合中删除元素
my_set.remove('a')
print(my_set)  # 输出:{1, 2, 3, 4, 'b', 'c'}

集合运算:

# 定义两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}# 求交集
intersection = set1.intersection(set2)
print(intersection)  # 输出:{4, 5}# 求并集
union = set1.union(set2)
print(union)  # 输出:{1, 2, 3, 4, 5, 6, 7, 8}# 求差集
difference = set1.difference(set2)
print(difference)  # 输出:{1, 2, 3}

set() 函数:
在这里插入图片描述
set() 函数用于创建一个可变的集合,它接受一个可迭代对象作为参数,并将其中的元素添加到集合中。如果不传递任何参数给 set() 函数,则会创建一个空集合。

# 创建一个包含多个元素的集合
my_set = set([1, 2, 3, 4, 5])
print(my_set)  # 输出:{1, 2, 3, 4, 5}# 创建一个空集合
empty_set = set()
print(empty_set)  # 输出:set()

frozenset() 函数:
frozenset() 函数用于创建一个不可变的集合,它接受一个可迭代对象作为参数,并将其中的元素添加到集合中。不可变集合与普通集合的区别在于,不可变集合的内容在创建后不能被修改,也不能添加或删除元素。

# 创建一个包含多个元素的不可变集合
my_frozenset = frozenset([1, 2, 3, 4, 5])
print(my_frozenset)  # 输出:frozenset({1, 2, 3, 4, 5})

& 操作符(交集):
在这里插入图片描述
& 操作符用于计算两个集合的交集,即返回同时存在于两个集合中的元素组成的新集合。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}intersection_set = set1 & set2
print(intersection_set)  # 输出:{4, 5}

【- 】操作符(差集):
在这里插入图片描述

【- 】操作符用于计算两个集合的差集,即返回存在于第一个集合但不存在于第二个集合中的元素组成的新集合。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}difference_set = set1 - set2
print(difference_set)  # 输出:{1, 2, 3}

^ 操作符(对称差):
^ 操作符用于计算两个集合的对称差,即返回存在于任一集合但不同时存在于两个集合中的元素组成的新集合。
在这里插入图片描述

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # 输出:{1, 2, 3, 6, 7, 8}

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

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

相关文章

动态规划——记忆化搜索

数字三角形 找一条最大路径。发现从上面往下一步步走很麻烦,直接搜索肯定超时,我们可以逆向求解。从下往上看。从倒数第二行开始看,2可以选4和5,因为找最大,所以我们选5,把2加上5更新为7,以此类…

vs2022断点空心加感叹号 解决方案

有时会出现设置的调试时,断点红色断点出现黄色的感叹号,并提示与原版本不同,现两种解决办法。 1、“工具”,“选项”,“调试”,“要求源文件与原始版本完成匹配”去掉勾。

设计模式系列:适配器模式

简介 适配器模式(Adapter Pattern)又称为变压器模式,它是一种结构型设计模式。适配器模式的目的是将一个类的接口转换成客户端所期望的另一种接口,从而使原本因接口不匹配而不能一起工作的两个类能够一起工作。 适配器模式有两种…

使用LVGL提升交互效率:基于启明智显Model3A方案的7寸智能屏用户界面(UI)设计介绍

项目概述: 【启明智显】,作为一家专注于HMI和AIoT解决方案的公司,我们致力于为用户提供创新、可靠且高效的产品和解决方案。近日我们推出了高性能及高性价比的HMI芯片——Model3A。芯片搭载了强大的2D图形加速引擎,能够提供高达7…

(六)PostgreSQL的组织结构(3)-默认角色和schema

PostgreSQL的组织结构(3)-默认角色和schema 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:57771 默认角色 Post…

Docker容器tomcat中文名文件404错误不一定是URIEncoding,有可能是LANG=zh_CN.UTF-8引起

使用Docker部署tomcat,出现中文名文件无法读取,访问就是404错误。在网上搜索一通,都说是在tomcat的配置文件server.xml中修改一下URIEncoding为utf-8就行,但是我怎么测试都不行。最终发现,是Docker启动时,传…

空气源热泵电控系统部分控制功能的逻辑

空气源热泵的电控系统,是一台空气源热泵设备的大脑,电控系统逻辑的合理性、执行的精准性,直接决定设备运行的稳定、能效高低、运行寿命。 控制功能 (1)压缩机防频繁起停 压缩机再次启动间隔时间为3分钟,即压…

SQL优化——访问路径(ACCESS PATH)

文章目录 1、常见访问路径1.1、TABLE ACCESS FULL1.2、TABLE ACCESS BY USER ROWID1.3、TABLE ACCESS BY ROWID RANGE1.4、TABLE ACCESS BY INDEX ROWID1.5、INDEX UNIQUE SCAN1.6、INDEX RANGE SCAN1.7、INDEX SKIP SCAN1.8、INDEX FULL SCAN1.9、INDEX FAST FULL SCAN1.10、I…

软件需求开发和管理过程性指导文件

1. 目的 2. 适用范围 3. 参考文件 4. 术语和缩写 5. 需求获取的方式 5.1. 与用户交谈向用户提问题 5.1.1. 访谈重点注意事项 5.1.2. 访谈指南 5.2. 参观用户的工作流程 5.3. 向用户群体发调查问卷 5.4. 已有软件系统调研 5.5. 资料收集 5.6. 原型系统调研 5.6.1. …

vue 实现实时搜索文档关键字并高亮显示

最近接到的一个新需求:实时搜索文档关键字并高亮显示,听起来好难的样子,仔细分析起来其实也蛮简单的。 实现思路 通过 input 实现关键字的输入,监听关键字的变化,用正则表达式来匹配关键字,然后给关键字添…

Linux上的uname

2024年4月19日,周五上午 这是我第一篇用CSDN上的markdown编辑器写的博客,感觉还不错 uname 是一个常用的命令行工具,uname 的全称是 “Unix Name”,它是一个 Unix 和类 Unix 操作系统上的命令行工具,用于获取操作系统相…

【全网瞩目】你想知道的Llama3都在这里

Meta发布了开放式生成人工智能模型 Llama 系列的最新产品: Llama 3。或者更准确地说,该公司首次发布了其新的 Llama 3 系列中的两个模型,其余模型将在未来某个不确定的日期发布。 Meta 称,与上一代 Llama 型号 Llama 2 8B 和 Llam…

【支付宝】对接手机网站支付踩坑点记录

前言 简单记录一下对接Wap支付的问题,alipay和wxpay认证过程差不多,有个体商户或企业即可,前者文档不易懂后者还好,但是wxpay门槛高,个人认为pc网站支付(native支付)就是为了收300认证费! 应用公私钥 第一…

React Router 5 vs 6:使用上的主要差异与升级指南

React Router 5 的一些API 在 React Router 6 上有时可能找不到,可能会看到如下画面:export ‘useHistory’ was not found in ‘react-router-dom’ … React Router目前有两个大的版本,即React Router 5、6。React Router 6 在设计上更加简…

【Anki】25考研408真题【2009-2023】

介绍 24年的真题解析还没有出!只到23年!一共有15套真题。 预览 客观题和主观题有两个目录。王道建议第一轮只写选择题,第二轮再开始写大题。 客观题: 主观题: 插件建议 See Previous Card Ratings in Reviewer 代码&am…

PM要会项目管理?完整版项目管理经验分享

近9个月,公司发生许多事情,包括产品研发部的人员结构调整。 原本以产品经理负责制的小组研发,变成了以项目经理负责制的项目组研发。 对于这一调整,我是支持的,毕竟产品在跟进项目时对技术的管控能力确实不如懂技术的…

彻底解决:IDEA java: 警告: 源发行版 17 需要目标发行版 17

一、出现的原因 JDK版本不匹配 二、解决方法 1.点击File -->Project Structure-->Project 修改这两处 2.在Project Structure-->Modules中的红框位置都要调整对应版本 3.点击File-->settings-->java compile将对应框的版本修改成对应版本即可 4.修改Pom文件中…

2010年认证杯SPSSPRO杯数学建模C题(第一阶段)高校图书馆的智能服务全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 C题 高校图书馆的智能服务 原题再现: 图书馆源于保存记事的习惯。图书馆是为读者在馆内使用文献而提供的专门场所。而高校的图书馆为教学和科研服务,具有服务性和学术性强的特点。   现在的高校图书馆存在着许多不良的…

吴恩达llama课程笔记:第四课提示词技术

羊驼Llama是当前最流行的开源大模型,其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型,Llama拥有7B、13B和70B(700亿)三种版本,满足不同场景和需求。 吴恩…

【oracle数据库安装篇二】Linux6.8基于ASM安装oracle11gR2单机

说明 本篇文章主要介绍了Linux6.8基于ASM安装oracle11gR2单机的配置过程,图文并茂,整个安装过程直观易懂,无论是对于初学者还是有一定经验的系统管理员,都能从中获得很大的帮助。 相比于上一篇【oracle数据库安装篇一】Linux5.6…