Python学习(2) ----- Python的数据类型及其集合操作
在 Python 中,一切皆对象,每个对象都有类型。下面是 Python 中的常见内置类型分类和示例:
🟡 1. 数字类型(Numeric Types)
类型 | 说明 | 示例 |
---|---|---|
int | 整数 | 5 , -42 |
float | 浮点数 | 3.14 , -0.5 |
complex | 复数 | 1 + 2j |
a = 10 # int
b = 3.14 # float
c = 2 + 3j # complex
🔤 2. 文本类型
类型 | 说明 | 示例 |
---|---|---|
str | 字符串 | "hello" 或 '你好' 单引号或者双引号,如果涉及到换行的可以使用三双引号 “”" “”" |
s = "Hello, 世界"
s = """
!!!
this is template!!!
!!!
"""
📦 3. 序列类型(Sequence Types)
类型 | 说明 | 示例 |
---|---|---|
list | 可变列表 | [1, 2, 3] |
tuple | 不可变元组 | (1, 2, 3) |
range | 范围对象 | range(0, 5) |
my_list = [1, 2, 3]
my_tuple = (4, 5, 6)
🔡 4. 集合类型
类型 | 说明 | 示例 |
---|---|---|
set | 无序不重复集合 | {1, 2, 3} |
frozenset | 不可变集合 | frozenset([1,2]) |
my_set = {1, 2, 3}
📖 5. 映射类型(Mapping)
类型 | 说明 | 示例 |
---|---|---|
dict | 字典 | {"name": "Alice", "age": 30} |
person = {"name": "Alice", "age": 25}
🔘 6. 布尔类型
类型 | 说明 | 示例 |
---|---|---|
bool | 布尔值(真/假) | True , False |
is_valid = True
🧼 7. 特殊类型
类型 | 说明 | 示例 |
---|---|---|
NoneType | 空值/无返回 | None |
bytes | 二进制数据 | b"abc" |
bytearray | 可变二进制序列 | bytearray(b"abc") |
✅ 类型检查与转换
检查类型:
type(3.14) # <class 'float'>
isinstance("abc", str) # True
类型转换:
int("123") # => 123
float("3.14") # => 3.14
str(456) # => "456"
list("abc") # => ['a', 'b', 'c']
💡 拓展:自定义类型(类)
class Dog:def __init__(self, name):self.name = named = Dog("Buddy")
print(type(d)) # <class '__main__.Dog'>
集合类型的详细操作
当然可以!以下是包括集合类型的定义、添加、删除操作在内的 Python 集合类型完整说明,帮助你全面理解集合(set
和 frozenset
)的使用:
🧩 Python 集合类型(Set Types)完整说明
🔹 1. set
(可变集合)
✅ 定义:
my_set = {1, 2, 3}
my_set2 = set([4, 5, 6]) # 使用 set() 构造
✅ 添加元素:
方法 | 说明 | 示例 |
---|---|---|
add(elem) | 添加一个元素 | my_set.add(4) |
update(iterable) | 添加多个元素(可传列表、元组等) | my_set.update([5, 6, 7]) |
my_set = {1, 2, 3}
my_set.add(4) # => {1, 2, 3, 4}
my_set.update([5, 6]) # => {1, 2, 3, 4, 5, 6}
✅ 删除元素:
方法 | 说明 | 示例 |
---|---|---|
remove(elem) | 删除元素,不存在则抛出异常 | my_set.remove(2) |
discard(elem) | 删除元素,不存在也不会抛异常 | my_set.discard(100) |
pop() | 随机删除一个元素并返回它 | val = my_set.pop() |
clear() | 清空集合 | my_set.clear() |
my_set = {1, 2, 3, 4}
my_set.remove(2) # => {1, 3, 4}
my_set.discard(100) # 不报错
value = my_set.pop() # 删除并返回任一元素
my_set.clear() # => 空集合 set()
🔹 2. frozenset
(不可变集合)
✅ 定义:
fset = frozenset([1, 2, 3])
⚠️ 不可修改:
- 不支持
.add()
、.remove()
、.update()
等修改操作。 - 可以用于字典的键或集合的元素(因为它是可哈希的)。
🧠 3. 集合的特点总结
- 自动去重:
{1, 2, 2, 3}
会变成{1, 2, 3}
- 元素无序:无法通过索引访问,如
set[0]
是错误的 - 可进行集合运算(交、并、差等)
a = {1, 2, 3}
b = {3, 4, 5}print(a | b) # 并集 => {1, 2, 3, 4, 5}
print(a & b) # 交集 => {3}
print(a - b) # 差集 => {1, 2}
✅ 小结
操作 | 可变 set | 不可变 frozenset |
---|---|---|
添加元素 | ✅ .add() / .update() | ❌ 不支持 |
删除元素 | ✅ .remove() / .discard() / .pop() / .clear() | ❌ 不支持 |
集合运算 | ✅ 支持 | ✅ 支持 |
可做字典键 | ❌ | ✅ 支持 |
当然可以!下面是 Python 中字典(dict
)和列表(list
)的常见 API 操作大全,适合新手和有经验的开发者查阅和学习。
🧾 Python 常用 list
和 dict
操作总结
📚 一、列表(list
)常见操作
✅ 创建列表
lst = [1, 2, 3]
lst2 = list(range(5)) # [0, 1, 2, 3, 4]
✅ 添加元素
操作 | 示例 | 说明 |
---|---|---|
append(x) | lst.append(4) | 尾部添加一个元素 |
extend([...]) | lst.extend([5, 6]) | 添加多个元素 |
insert(i, x) | lst.insert(1, 'a') | 插入到指定位置 |
✅ 删除元素
操作 | 示例 | 说明 |
---|---|---|
pop() | lst.pop() | 移除最后一个并返回 |
pop(i) | lst.pop(2) | 移除指定索引 |
remove(x) | lst.remove(3) | 移除第一次出现的值 |
clear() | lst.clear() | 清空列表 |
✅ 查找/判断
操作 | 示例 | 说明 |
---|---|---|
in | 3 in lst | 是否存在 |
index(x) | lst.index(3) | 第一次出现的索引 |
count(x) | lst.count(1) | 某元素出现次数 |
✅ 排序/翻转
操作 | 示例 | 说明 |
---|---|---|
sort() | lst.sort() | 升序排序(原地) |
sort(reverse=True) | lst.sort(reverse=True) | 降序排序 |
sorted(lst) | 返回新排序列表 | |
reverse() | lst.reverse() | 原地翻转 |
📘 二、字典(dict
)常见操作
✅ 创建字典
d = {"name": "Alice", "age": 30}
d2 = dict(id=123, status="ok")
✅ 访问与修改
操作 | 示例 | 说明 |
---|---|---|
访问键值 | d["name"] | 获取键对应的值 |
安全访问 | d.get("gender", "unknown") | 不存在时返回默认值 |
修改值 | d["age"] = 35 | 修改键对应的值 |
✅ 添加键值对
d["gender"] = "female"
✅ 删除键值对
操作 | 示例 | 说明 |
---|---|---|
pop(key) | d.pop("name") | 删除键并返回值 |
del | del d["age"] | 删除键值对 |
clear() | d.clear() | 清空字典 |
✅ 遍历字典
for k in d: print(k) # 遍历键
for v in d.values(): print(v) # 遍历值
for k, v in d.items(): print(k, v) # 遍历键值对
✅ 获取内容
操作 | 示例 | 说明 |
---|---|---|
keys() | d.keys() | 所有键 |
values() | d.values() | 所有值 |
items() | d.items() | 所有键值对 (tuple 形式) |
✅ 合并与更新
d.update({"age": 31, "city": "Beijing"})
✅ 小结图表
类型 | 操作 | 方法 / 函数 | 说明 |
---|---|---|---|
list | 添加 | append() , insert() | 添加元素 |
list | 删除 | pop() , remove() | 删除元素 |
list | 排序/翻转 | sort() , reverse() | 排序和翻转 |
dict | 添加/修改 | dict[key] = val | 设置键值 |
dict | 删除 | pop() , del , clear() | 删除键 |
dict | 遍历 | items() , keys() | 遍历所有键或键值对 |
相关文章:
Python学习(2) ----- Python的数据类型及其集合操作
在 Python 中,一切皆对象,每个对象都有类型。下面是 Python 中的常见内置类型分类和示例: 🟡 1. 数字类型(Numeric Types) 类型说明示例int整数5, -42float浮点数3.14, -0.5complex复数1 2j a 10 …...
机器学习算法-决策树
今天我们用一个 「相亲决策」 的例子来讲解决策树算法,保证你轻松理解原理和实现! 🌳 决策树是什么? 决策树就像玩 「20个问题」猜谜游戏: 你心里想一个东西(比如「苹果」) 朋友通过一系列问题…...

MediaMtx开源项目学习
这个博客主要记录MediaMtx开源项目学习记录,主要包括下载、推流(摄像头,MP4)、MediaMtx如何使用api去添加推流,最后自定义播放器,播放推流后的视频流,自定义Video播放器博客地址 1 下载 MediaMTX MediaMTX 提供了预编译的二进制文件,您可以从其 GitHub 页面下载: Gi…...

Linux安装EFK日志分析系统
目标:能够实现采集指定路径日志到es,用kibana实现日志分析 单es节点集群规划: 主机名IP 地址组件a1192.168.1.111Kibana elasticsearcha2192.168.1.112Fluentda3192.168.1.103Fluentd 1、安装Elasticsearch 1.1添加 Elastic 仓库并安装 E…...

Linux(9)——进程(控制篇——下)
目录 三、进程等待 1)进程等待的必要性 2)获取子进程的status 3)进程的等待方法 wait方法 waitpid方法 多进程创建以及等待的代码模型 非阻塞的轮训检测 四、进程程序替换 1)替换原理 2)替换函数 3&…...

E. Melody 【CF1026 (Div. 2)】 (求欧拉路径之Hierholzer算法)
E. Melody 思路 将所有出现过的音量和音高看作一个点,一个声音看作一条边,连接起来。那么很容易知道要找的就是图上的一条欧拉路径(类似一笔画问题) 又已知存在欧拉路径的充要条件为:度数为奇数的点的个数为0或者2个…...
@Pushgateway 数据自动清理
文章目录 Pushgateway 数据自动清理一、Pushgateway 数据清理的必要性二、自动清理方案方案1:使用带TTL功能的Pushgateway分支版本方案2:使用Shell脚本定期清理方案3:结合Prometheus记录规则自动清理 三、最佳实践建议四、验证与维护五、示例…...

粽叶飘香时 山水有相逢
粽叶飘香时 山水有相逢 尊敬的广大客户们: 五月初五,艾叶幽香。值此端午佳节,衡益科技全体同仁向您致以最诚挚的祝福! 这一年我们如同协同竞渡的龙舟,在数字化转型的浪潮中默契配合。每一次技术对接、每轮方案优化&a…...

YC-8002型综合变配电监控自动化系统
一 .系统概述 YC-8002型综合变配电监控自动化系统是西安亚川电力科技有限公司为适应广大客户要求,总结多项低 压配电网络自动化工程实例的经验,基于先进的电子技术、计算机和网络通讯等技术自主研发的--套结合本公司网络配电产品的应用于低压配电领域的…...

react diff 算法
diff 算法作为 Virtual DOM 的加速器,其算法的改进优化是 React 整个界面渲染的基础和性能的保障,同时也是 React 源码中最神秘的,最不可思议的部分 diff 算法会帮助我们就算出 VirtualDOM 中真正变化的部分,并只针对该部分进行原…...

近期手上的一个基于Function Grap(类AWS的Lambda)小项目的改造引发的思考
函数式Function是云计算里最近几年流行起来的新的架构和模式,因为它不依赖云主机,非常轻量,按需使用,甚至是免费使用,特别适合哪种数据同步,数据转发,本身不需要保存数据的业务场景,…...
Obsidian 社区插件下载修复
Obsidian 社区插件下载修复 因为某些原因,在国内经常无法下载 Obsidian 的社区插件。这个项目的主要目的就是修复这种情况,让国内的用户也可以无障碍的下载社区插件。 上手指南 下载 obsidian-proxy-github.zip解压 obsidian-proxy-github.zip将解压的…...

VSCode的下载与安装(2025亲测有效)
目录 0 前言1 下载2 安装3 后记 0 前言 丫的,谁懂啊,尝试了各种办法不行的话,我就不得不拿出我的最后绝招了,卸载,重新安装,我经常要重新安装,所以自己写了一个博客,给自己…...

千库/六图素材下载工具
—————【下 载 地 址】——————— 【本章下载一】:https://pan.xunlei.com/s/VORW9TbxC9Lmz8gCynFrgdBzA1?pwdxiut# 【本章下载二】:https://pan.quark.cn/s/829e2a4085d3 【百款黑科技】:https://ucnygalh6wle.feishu.cn/wiki/…...
Ansible模块——Ansible的安装!
Ansible 安装 Ansible 有三种安装方式,源码安装、发行版安装和 Python 安装。 使用发行版安装或 Python 安装两种方式时,Ansible 的安装包有两个,区别如下: • ansible-core:一种极简语言和运行时包,包含…...

差分S参数-信号与电源完整性分析
差分S参数: 由于差分互连中使用差分信号传递信息,接收器最关心的是差分信号的质量,如果互连通道的S参数能直接反映出对差分信号的影响,对分析问题将方便得多。差分互连通道可以看成是一个四端口网络,激励源为单端信号,…...
扣子Coze飞书多维表插件-查询数据
search_record - 查询数据 请求参数 apptoken - 多维表的唯一标识服 可选参数: automatic_fields - 控制是否返回自动计算的字段, true 表示返回。 field_names - 字段名称,用于指定本次查询返回记录中包含的字段。 示例值:["字段1&…...
计算机模拟生物/化学反应有哪些软件?
以下是用于计算机模拟生物/化学反应的软件分类总结,涵盖量子化学、分子动力学、化学信息学及新兴混合方法等方向,结合其核心功能和应用场景进行整理: ⚛️ 一、量子化学计算软件 ChemiQ(本源量子) 类型:量子…...

PostIn V1.1.2版本发布,新增接口评审功能,提升接口质量与合理性
PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块,支持常见的HTTP协议、websocket协议。本周PostIn V1.1.0版本发布,新增接口评审、接口统计功能。 1、版本更新日志 新增 ➢ 接口评审&a…...
MySQL数据归档利器:pt-archiver原理剖析与实战指南
MySQL数据归档利器:pt-archiver原理剖析与实战指南 在MySQL数据库管理中,数据归档是一个永恒的话题——随着业务数据的不断增长,如何高效、安全地将历史数据从生产表迁移到归档表或文件,同时不影响在线业务,是每个DBA和开发者都需要面对的挑战。Percona Toolkit中的pt-ar…...

【论文阅读】User Diverse Preference Modeling by Multimodal Attentive Metric Learning
User Diverse Preference Modeling by Multimodal Attentive Metric Learning 题目翻译:基于多模态注意度量学习的用户不同偏好建模 摘要 提出一个**多模态注意力度量学习(MAML, Multimodal Attentive Metric Learning)**方法,…...
Catch That Cow POJ - 3278
农夫约翰得知了一头逃亡奶牛的位置,想要立即抓住她。他起始于数轴上的点N(0 ≤ N ≤ 100,000),而奶牛位于同一条数轴上的点K(0 ≤ K ≤ 100,000)。农夫约翰有两种移动方式:步行和传送。 * 步行…...

【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:计算机网络 🌹往期回顾🌹: 【计算机网络】传输层UDP协议 🔖流水不争,争的是滔滔不息 一、TCP协议 UDP&…...

文件服务端加密—minio配置https
1.安装openssl 建议双击安装包默认安装,安装完成之后配置环境变量 如下图则配置成功: 二、生成自签名CA证书及私钥 1、生成私钥 openssl genrsa -out private.key 20482、生成自签名证书 (1)编写openssl.conf文件,…...

界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现自定义遥测?
DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 .NET As…...

多卡训练核心技术详解
多卡训练核心技术详解 多卡训练 主要围绕分布式环境初始化、模型并行化、数据分片和梯度同步展开。下面结合您的代码,详细解释这些核心部分: 并行执行命令 torchrun --nproc_per_node=5 TokenLossMulCard.py 1. 分布式环境初始化 def init_distributed():init_process_…...

深度学习全面掌握指南
一、引言 深度学习是机器学习的一个分支,它通过构建多层神经网络来模拟人类大脑的信息处理方式,从而实现对复杂数据的自动特征提取和模式识别。近年来,深度学习在计算机视觉、自然语言处理、语音识别等领域取得了巨大的突破,引发…...

magic-api配置Git插件教程
一、配置gitee.com 1,生成rsa密钥,在你的电脑右键使用管理员身份运行(命令提示符),执行下面命令 ssh-keygen -t rsa -b 2048 -m PEM一直按回车键,不需要输入内容 找到 你电脑中的~/.ssh/id_rsa.pub 文件…...
算法打卡第11天
36.有效的括号 (力扣20题) 示例 1: **输入:**s “()” **输出:**true 示例 2: **输入:**s “()[]{}” **输出:**true 示例 3: **输入:**s “(]”…...
【决策分析】基于Excel的多变量敏感性分析解决方案
在Excel中实现多变量敏感性分析(3个及以上变量)需要结合更灵活的工具和方法,因为Excel内置的数据表功能仅支持最多双变量分析。以下是针对多变量场景的解决方案,按复杂度和实用性排序: 方法1:场景管理器 摘…...