9.30Python基础-元组(补充)、字典、集合
Python元组(tuple)补充
1、元组的不可变性
元组(tuple)是Python中的一种内置数据类型,用于存储不可变的序列。虽然元组本身不可变,但元组内的元素如果是可变对象(如列表),则其内容可以改变。
示例:元组连接
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 合并元组
tup3 = tup1 + tup2
print(tup3)
注意:以下操作是非法的
# tup1[0] = 100 # 尝试修改元组元素将引发错误
2、删除整个元组
元组不能删除单个元素,但可以使用del语句删除整个元组。
示例:删除元组
tup = ('openAI', 'hqyj', 100, 200)
print(tup)
del tup
# print(tup) # 此行代码将引发错误,因为tup已被删除
3、元组运算
元组支持一些基本运算,如连接、复制和成员检查。
示例:元组运算
# 连接元组
print((1, 2, 3) + (4, 5, 6))
# 复制元组
print(('Hi!',) * 4)
# 成员检查
print(3 in (1, 2, 3))
# 迭代元组
for x in (1, 2, 3):print(x)
4、元组不可变性的实质
元组的不可变性是指其内存地址指向的数据不可变,但元组内可变对象的内容可以改变。
示例:元组内可变对象
tup = (1, 2, [3, 4], 5)
# 以下操作是合法的
tup[2].append(6)
print(tup)
7、元组常用API
Python提供了几个内置函数来处理元组。
示例:使用元组API
# 计算元组长度
print(len((1, 2, 3)))
# 获取元组中的最大值
print(max((1, 2, 3)))
# 获取元组中的最小值
print(min((1, 2, 3)))
# 将列表转换为元组
print(tuple([1, 2, 3]))
Python字典(dict)
字典(dict)是Python中的一种内置数据类型,用于存储键值对。字典是可变的,可以根据需要添加、修改或删除键值对。
1、创建字典
字典可以通过多种方式创建,但不应使用dict作为变量名。
示例:创建字典
d1 = {} # 创建空字典
d2 = dict() # 使用内建函数创建字典
d3 = {"name": "karen", "age": 23}
d4 = dict({"name": "jack", "age": 24})
print(d3) # 打印字典
print(len(d3)) # 查看字典的长度
print(type(d3)) # 查看类型
2、访问字典值
可以通过键来访问字典中的值。
示例:访问字典值
mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'}
print(mydic['Name'])
print(mydic['Age'])
注意:访问不存在的键将引发错误
# print(mydic['Alice']) # 此行代码将引发错误
3、修改字典
可以向字典中添加新的键值对或修改现有的键值对。
示例:修改字典
mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'}
mydic['Age'] = 8 # 更新值
mydic['School'] = "华清" # 添加新的键值对
print(mydic['Age'])
print(mydic['School'])
4、删除字典元素
可以使用del语句或字典方法来删除字典中的元素。
示例:删除字典元素
mydic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del mydic['Name'] # 删除键 'Name'
mydic.clear() # 清空字典
# del mydic # 删除整个字典
5、字典常用API
操作字典的函数:
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | len(dict) | 计算字典元素个数,即键的总数。 |
| 2 | str(dict) | 输出字典,可以打印的字符串表示。 |
| 3 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
字典的方法:
| 序号 | 函数及描述 |
|---|---|
| 1 | dict.clear()删除字典内所有元素 |
| 2 | dict.copy()返回一个字典的浅复制 |
| 3 | dict.fromkeys(seq)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
| 4 | dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
| 5 | key in dict如果键在字典dict里返回true,否则返回false |
| 6 | dict.items()以列表返回一个视图对象 |
| 7 | dict.keys()返回一个视图对象 |
| 8 | dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
| 9 | dict.update(dict2)把字典dict2的键/值对更新到dict里 |
| 10 | dict.values()返回一个视图对象 |
| 11 | pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。 |
| 12 | popitem()返回并删除字典中的最后一对键和值。 |
Python集合(set)
集合(set)是Python中的一种内置数据类型,用于存储无序且不重复的元素集合。集合非常适合于需要进行成员检测、消除重复元素以及执行集合理论运算(如并集、交集和差集)的场景。
1、创建集合
可以使用大括号或set()函数来创建集合,但请注意区分空集合与空字典。
示例:创建集合
# 使用大括号创建集合
set1 = {1, 2, 3, 4}
print("集合 set1:", set1)
# 使用 set() 函数从列表创建集合
set2 = set([4, 5, 6, 7])
print("集合 set2:", set2)
# 使用 set() 函数从元组创建集合
set3 = set((4, 5, 6, 7))
print("集合 set3:", set3)
2、添加元素
可以向集合中添加单个元素或多个元素。
示例:添加元素到集合
s1 = set((4, 5, 6, 7))
s1.add(100) # 添加单个元素
print("添加单个元素后的集合 s1:", s1)
s1.update([200, 300]) # 添加多个元素,可以是列表、元组、字典等
print("添加多个元素后的集合 s1:", s1)
3、移除元素
可以使用remove()、discard()或pop()方法来移除集合中的元素。
示例:移除集合中的元素
s1 = {10, 20, 30}
s1.remove(20) # 移除元素,如果元素不存在则引发错误
print("移除元素后的集合 s1:", s1)
s1.discard(40) # 移除元素,如果元素不存在不会引发错误
print("尝试移除不存在的元素后的集合 s1:", s1)
s1.pop() # 随机移除并返回一个元素
print("随机移除元素后的集合 s1:", s1)
4、计算集合元素个数
使用len()函数可以计算集合中元素的数量。
示例:计算集合元素个数
s1 = {10, 20, 30}
print("集合 s1 的长度:", len(s1)) # 输出集合的长度
5、清空集合
使用clear()方法可以清空集合中的所有元素。
示例:清空集合
s1 = {10, 20, 30}
s1.clear() # 清空集合
print("清空后的集合 s1:", s1) # 输出空集合
6、判断元素是否在集合中
使用in关键字可以检查元素是否存在于集合中。
示例:检查元素是否存在
s1 = {10, 20, 30}
print("20 是否在集合 s1 中:", 20 in s1) # 输出 True,因为 20 在集合中
7、集合内置方法完整API
Python集合提供了丰富的内置方法来执行集合操作。
集合的方法
| 方法 | 描述 |
|---|---|
| add() | 向集合添加元素 |
| clear() | 清除集合中的所有元素 |
| copy() | 返回集合的浅复制 |
| difference() | 返回多个集合的差集 |
| difference_update() | 移除集合中的元素,该元素在指定的集合也存在 |
| discard() | 删除集合中指定的元素 |
| intersection() | 返回集合的交集 |
| intersection_update() | 用集合的交集更新集合 |
| isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True |
| issubset() | 判断指定集合是否为该方法参数集合的子集 |
| issuperset() | 判断该方法的参数集合是否为指定集合的超集 |
| pop() | 随机移除元素 |
| remove() | 移除指定元素 |
| symmetric_difference() | 返回两个集合中不重复的元素集合 |
| symmetric_difference_update() | 用集合的对称差集更新集合 |
| union() | 返回两个集合的并集 |
| update() | 更新集合,添加指定集合中的元素 |
| len() | 计算集合元素个数 |
| 使用这些方法,可以灵活地对集合进行操作以满足不同的需求。 |
相关文章:
9.30Python基础-元组(补充)、字典、集合
Python元组(tuple)补充 1、元组的不可变性 元组(tuple)是Python中的一种内置数据类型,用于存储不可变的序列。虽然元组本身不可变,但元组内的元素如果是可变对象(如列表)ÿ…...
桥接模式和NET模式的区别
桥接模式和NET模式的区别 NAT模式: NAT:网络地址转换(模式):借助宿主机来上网,没桥接那么麻烦,只用配置DNS即可。 缺点:扎根于宿主机,不能和局域网内其它真实的主机进行…...
Pigar:Python 项目的依赖管理利器
🌟 引言 在Python项目开发过程中,依赖管理是一个不可忽视的环节。一个精确且易于维护的requirements.txt文件对于项目的部署和协作至关重要。今天,我们将介绍一款名为Pigar的自动生成requirements.txt文件的依赖管理工具,它通过一…...
泰勒图 ——基于相关性与标准差的多模型评价指标可视化比较-XGBoost、sklearn
1、基于相关性与标准差的多模型评价指标可视化比较 # 数据读取并分割 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split plt.rcParams[font.family] = Times New Roman plt.rcParams[axes.unic…...
记录|Modbus-TCP产品使用记录【摩通传动】
目录 前言一、摩通传动实验图1.1 配置软件 IO_Studio1.2 测试软件Modbus Poll1.2.1 读写设置测试1.2.2 AI信号的读取 1.3 对应的C#连接Modbus的测试代码如下【自制,仅供参考】1.4 最终实验图 更新时间 前言 参考文章: 自己需要了解和对比某些产品的Modbu…...
工业交换机的RMON
工业交换机在现代网络中扮演着至关重要的角色,它不仅负责数据的高效传输,还具备强大的监控和管理能力。其中,RMON(远程监控)功能使得交换机的性能得以进一步提升,成为网络管理的重要工具。RMON提供了一种先…...
生态遥感数据下载分享
中国土壤湿度/土壤水分数据集(2000-2020) 下载网站:https://poles.tpdc.ac.cn/zh-hans/data/49b22de9-5d85-44f2-a7d5-a1ccd17086d2/#:~:text%E6%88%91%E4%BB%AC%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%AD%E5%9B%BD%E8%8C%83 note: The data can …...
ECharts 快速使用
最终效果 使用介绍 echarts图表的绘制,大体分为三步: 根据 DOM实例,通过 echarts.init方法,生成 echarts实例构建 options配置对象,整个echarts的样式,皆有该对象决定最后通过实例.setOption方法…...
进程--消息队列和共享内存
目录 消息队列 创建消息队列 删除消息队列 发送消息和接收 消息队列 消息队列就是一个消息的列表,进程可以在消息队列中添加消息和的读取消息 消息队列具有FIFO的特性,具有无名管道与有名管道各自的优势,可以支持任意两个进程的进程间通讯…...
useCallback()
官网直达:https://zh-hans.react.dev/reference/react/useCallback 点击按钮,子组件会重新渲染 import { memo, useState, useCallback } from react;const Child (props) > {console.log(我是子组件!我在渲染呢!࿰…...
Python面试题精选及解析--第二篇
在Python的面试中,除了基础语法和常用库的知识外,面试官往往还会通过一系列的问题来考察应聘者的逻辑思维、问题解决能力以及项目经验。以下是一些精心挑选的Python面试题及其详细答案,旨在帮助求职者更好地准备面试。 面试题一:…...
Linux操作常用问题
目录 Ubuntu操作问题vi编辑方向键键盘乱码回退键不能使用的问题解决问题的方法 Ubuntu操作问题 vi编辑方向键键盘乱码回退键不能使用的问题 编辑/etc/systemd/resolved.conf文件来修改DNS,结果编辑时键盘乱码,按下方向键会出现ABCD,且回退键…...
汽车发动机系统(ems)详细解析
汽车发动机系统EMS,即Engine-Management-System(发动机管理系统),是现代汽车电子控制技术的重要组成部分。以下是对汽车发动机系统EMS的详细解析,内容将涵盖其定义、工作原理、主要组成、功能特点、技术发展以及市场应…...
对比学习训练是如何进行的
对比学习(Contrastive Learning)是一种自监督学习的方法,旨在通过拉近相似样本的表示、拉远不相似样本的表示来学习特征表示。在训练过程中,模型并不依赖标签,而是通过样本之间的相似性进行学习。以下是对比学习的基本…...
React 生命周期 - useEffect 介绍
在 React 中,useEffect 钩子可以被看作是函数组件中的一种副作用管理工具,它的行为可以模拟类组件中的不同生命周期方法。useEffect 的执行时机取决于其依赖项数组(第二个参数)的设置方式。 根据 useEffect 的使用方式,…...
OpenCV-指纹识别
文章目录 一、意义二、代码实现1.计算匹配点2.获取编号3.获取姓名4.主函数 三、总结 一、意义 使用OpenCV进行指纹识别是一个复杂且挑战性的任务,因为指纹识别通常需要高精度的特征提取和匹配算法。虽然OpenCV提供了多种图像处理和计算机视觉的工具,但直…...
IPD的核心思想
IPD是一套领先的、成熟的研发管理思想、模式和方法。它是根据大量成功的研发管理实践总结出来的,并被大量实践证明的高效的产品研发模式。 那么,按照IPD来开展产品研发与产品管理工作,应该基于哪些基本思想或原则?市场导向、客户…...
如何在算家云搭建MVSEP-MDX23(音频分离)
一、MVSEP-MDX23简介 模型GitHub网址:MVSEP-MDX23-music-separation-model/README.md 在 main ZFTurbo/MVSEP-MDX23-音乐分离模型 GitHub 上 在音视频领域,把已经发布的混音歌曲或者音频文件逆向分离一直是世界性的课题。音波混合的物理特性导致在没有…...
常用的Java安全框架
Spring Security: 就像Java安全领域的“瑞士军刀”,功能全面且强大。 支持认证、授权、加密、会话管理等安全功能。 与Spring框架无缝集成,使用起来特别方便。 社区活跃,文档丰富,遇到问题容易找到解决方案。 Apach…...
使用 PHP 的 strip_tags函数保护您的应用安全
在现代 web 开发中,处理用户输入是一项常见的任务。然而,用户输入的内容往往包含 HTML 或 PHP 标签,这可能会导致安全漏洞,如跨站脚本攻击(XSS)。为了解决这个问题,PHP 提供了一个非常有用的函数…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
