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 集合类型完整说明,帮助你全面理解集合(setfrozenset)的使用:


🧩 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 常用 listdict 操作总结


📚 一、列表(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()清空列表

✅ 查找/判断

操作示例说明
in3 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")删除键并返回值
deldel 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()遍历所有键或键值对

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

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

相关文章

深入解析Go语言数据类型:从底层到高级应用

引言 Go语言的数据类型系统设计体现了​​简洁性​​与​​高效性​​的完美平衡。作为静态编译型语言&#xff0c;Go提供了丰富的数据类型支持&#xff0c;从基础数值类型到高级并发原语&#xff0c;都经过精心设计。本文将深入剖析Go语言数据类型体系&#xff0c;揭示其底层…

数据交易场景的数据质量评估

在现代数字化时代&#xff0c;数据已成为推动商业发展的核心驱动力。基于不同的交易产品和业务场景&#xff0c;数据产品的质量和准确性直接影响到数据资产的价值及其在市场中的流通性。因此&#xff0c;为数据产品提供全面、深入的数据质量评估报告&#xff0c;不仅有助于提升…

Java 对接 Office 365 邮箱全攻略:OAuth2 认证 + JDK8 兼容 + Spring Boot 集成(2025 版)

&#x1f6a8; 重要通知&#xff1a;微软强制 OAuth2&#xff0c;传统认证已失效&#xff01; 2023 年 10 月起&#xff0c;Office 365 全面禁用用户名 密码认证&#xff0c;Java 开发者必须通过OAuth 2.0实现邮件发送。本文针对 CSDN 技术栈&#xff0c;提供从 Azure AD 配置…

一文详谈Linux中的时间管理和定时器编程

&#xff08;目录&#xff09; 先说一些在计算机中需要用到时间的地方&#xff1a;系统日志log、OS调度(时间片、定时器)等等~~ 时间的计量 计时的方式发展&#xff1a;日晷、沙漏 -> 机械钟 -> 石英振荡器、晶振 -> 铯原子钟 -> 氢原子钟 计算机中的计时方式&…

使用FastAPI+Sqlalchemy从一个数据库向另一个数据库更新数据(sql语句版)

from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker # 配置数据库连接&#xff08;示例为PostgreSQL->MySQL&#xff09; SRC_DB_URL postgresql://user:passsource_host:5432/source_db DST_DB_URL mysqlpymysql://user:passdest_hos…

基于python脚本进行Maxwell自动化仿真

本文为博主进行Maxwell自动化研究过程的学习记录&#xff0c;同时对Maxwell自动化脚本&#xff08;pythonIron&#xff09;实现方法进行分享。 文章目录 脚本使用方法脚本录制与查看常用脚本代码通用开头定义项目调整设计变量软件内对应位置脚本 设置求解器软件内对应位置脚本…

pikachu通关教程-RCE

目录 RCE(remote command/code execute)概述: exec "ping" 管道符 乱码问题 RCE(remote command/code execute)概述: RCE漏洞&#xff0c;可以让攻击者直接向后台服务器远程注入操作系统命令或者代码&#xff0c;从而控制后台系统 分为远程代码和远程命令两种.当…

JavaScript性能优化全景指南

JavaScript性能优化全景指南 Ⅰ. 加载性能优化 1.1 代码分割与懒加载 动态导入(ES2020) javascript // 路由级代码分割 const ProductPage () > import(/* webpackChunkName: "product" */ ./ProductPage.vue); // 交互驱动加载 document.querySelector(#char…

BaseTypeHandler用法-笔记

1.BaseTypeHandler简介 org.apache.ibatis.type.BaseTypeHandler 是 MyBatis 提供的一个抽象类&#xff0c;通过继承该类并实现关键方法&#xff0c;可用于实现 Java 类型 与 JDBC 类型 之间的双向转换。当数据库字段类型与 Java 对象属性类型不一致时&#xff08;如&#xff…

t015-预报名管理系统设计与实现 【含源码!!!】

项目演示地址 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装预报名管理系统软件来发挥其高效地信息处理的…

Day12 - 计算机网络 - HTTP

HTTP常用状态码及含义&#xff1f; 301和302区别&#xff1f; 301&#xff1a;永久性移动&#xff0c;请求的资源已被永久移动到新位置。服务器返回此响应时&#xff0c;会返回新的资源地址。302&#xff1a;临时性性移动&#xff0c;服务器从另外的地址响应资源&#xff0c;但…

【python深度学习】Day 40 训练和测试的规范写法

知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#xff1a;仔细学习下测试和训练代码…

亡羊补牢与持续改进 - SRE 的安全日志、审计与事件响应

亡羊补牢与持续改进 - SRE 的安全日志、审计与事件响应 如果说我们之前讨论的安全措施(如 IAM、网络策略、密钥管理、漏洞补丁)是为我们的“数字城堡”修筑坚固的城墙、设置精密的门锁、定期检查和修补潜在的裂缝,那么安全日志就像是遍布城堡内外的监控摄像头和出入登记簿,…

CppCon 2014 学习第2天:Using Web Services in C++

概述 这是一个会议或演讲的概述内容&#xff0c;主要介绍一个关于C Rest SDK的分享&#xff0c;翻译和理解如下&#xff1a; 翻译 概述 先介绍什么是典型的Web服务结构和它的特征讲讲调用这些Web服务的几种方式重点介绍自己团队开发的一个C库&#xff08;C Rest SDK&#xf…

【OpenHarmony】【交叉编译】使用gn在Linux编译3568a上运行的可执行程序

linux下编译arm64可执行程序 一.gn ninja安装二.交叉编译工具链安装1.arm交叉编译工具2.安装arm64编译器 三. gn文件添加arm及arm64工具链四.编译验证 本文以gn nijia安装中demo为例&#xff0c;将其编译为在arm64(rk_3568_a开发板)环境下可运行的程序 一.gn ninja安装 安装g…

【开发心得】AstrBot对接飞书失败的问题探究

飞书与AstrBot的集成使用中,偶尔出现连接不稳定的现象。尽管不影响核心功能,但为深入探究技术细节并推动后续优化,需系统性记录该问题。先从底层通信机制入手,分析连接建立的逻辑与数据交互流程。基于实际现象,明确问题发生的具体场景和表现特征,进而梳理潜在影响因素,为…

Spring Boot 3.5.0中文文档上线

Spring Boot 3.5.0 中文文档翻译完成&#xff0c;需要的可收藏 传送门&#xff1a;Spring Boot 3.5.0 中文文档

7.atlas安装

1.服务器规划 软件版本参考&#xff1a; https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.2?hlzh-cn 由于hive3.1.3不完全支持jdk8,所以将hive的版本调整成4.0.1。这个版本没有验证过&#xff0c;需要读者自己抉择。 所有的软件都安装再/op…

c# 获取电脑 分辨率 及 DPI 设置

using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;/// <summary> /// 这个可以 /// </summary> class Program {static void Main(){//设置DPI感知try{SetProcessDpiAwareness(…

LangChain表达式(LCEL)实操案例1

案例1&#xff1a;写一篇短文&#xff0c;然后对这篇短文进行打分 from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import RunnableWithMessageHist…