Python入门:7.Pythond的内置容器
引言
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
一、容器的概念
容器是用来存储多个数据的对象。在 Python 中,容器根据数据是否有序、是否可变、是否重复等特性被划分为多种类型。主要包括以下几类:
- 字符串(str):存储字符编码值,不可变,序列。
- 列表(list):存储变量,可变,序列。
- 元组(tuple):存储变量,不可变,序列。
- 字典(dict):存储键值对,可变,散列,键不能重复且不可变。
- 集合(set):存储键,可变,无序且不重复。

二、内置容器的详细解析
1. 字符串(String,str)
字符串是一种不可变的有序字符序列。
常用方法表格:
| 方法名 | 描述 |
|---|---|
len(s) | 返回字符串的长度 |
s.lower() | 转换为小写 |
s.upper() | 转换为大写 |
s.strip() | 去除两端的空格或指定字符 |
s.split() | 根据指定分隔符拆分字符串 |
s.join(t) | 用字符串连接可迭代对象的元素 |
s.replace(a, b) | 替换字符串中的子串 a 为 b |
示例代码:
text = " Hello, Python! "# 基本操作
print(len(text)) # 输出: 15
print(text.strip()) # 输出: Hello, Python!
print(text.lower()) # 输出: hello, python!# 分割与连接
words = text.strip().split(", ")
print(words) # 输出: ['Hello', 'Python!']
joined = "-".join(words)
print(joined) # 输出: Hello-Python!
2. 列表(List)
列表是一种有序、可变的容器,可以存储任意类型的对象。
常用方法表格:
| 方法名 | 描述 |
|---|---|
len(lst) | 返回列表的长度 |
lst.append(x) | 在列表末尾添加元素 x |
lst.insert(i, x) | 在索引 i 处插入元素 x |
lst.pop([i]) | 删除并返回索引 i 处的元素(默认为末尾) |
lst.remove(x) | 删除第一个值为 x 的元素 |
lst.sort() | 对列表进行排序(默认升序) |
lst.reverse() | 将列表反转 |
示例代码:
fruits = ['apple', 'banana', 'cherry']# 添加和删除元素
fruits.append('orange')
print(fruits) # 输出: ['apple', 'banana', 'cherry', 'orange']
fruits.remove('banana')
print(fruits) # 输出: ['apple', 'cherry', 'orange']# 索引与排序
fruits.insert(1, 'grape')
print(fruits) # 输出: ['apple', 'grape', 'cherry', 'orange']
fruits.sort()
print(fruits) # 输出: ['apple', 'cherry', 'grape', 'orange']
3. 元组(Tuple)
元组是一种有序、不可变的容器。
常用方法表格:
| 方法名 | 描述 |
|---|---|
len(tpl) | 返回元组的长度 |
tpl.index(x) | 返回元素 x 的第一个索引 |
tpl.count(x) | 返回元素 x 出现的次数 |
示例代码:
coordinates = (10, 20, 30, 20)# 元组操作
print(len(coordinates)) # 输出: 4
print(coordinates.index(20)) # 输出: 1
print(coordinates.count(20)) # 输出: 2
4. 字典(Dictionary,dict)
字典是一种无序的键值对(key-value pair)容器。
常用方法表格:
| 方法名 | 描述 |
|---|---|
len(d) | 返回字典中键值对的数量 |
d[k] | 返回键 k 对应的值 |
d.clear() | 清空字典中的所有键值对 |
d.get(k[, default]) | 返回键 k 对应的值,如果不存在返回默认值 |
d.keys() | 返回字典的所有键 |
d.values() | 返回字典的所有值 |
d.items() | 返回字典的所有键值对 |
d.pop(k) | 删除并返回键 k 对应的值 |
示例代码:
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 基本操作
print(len(person)) # 输出: 3
print(person.get('name')) # 输出: Alice# 修改和删除
person['age'] = 30
person.pop('city')
print(person) # 输出: {'name': 'Alice', 'age': 30}# 遍历
for key, value in person.items():print(f"{key}: {value}")
5. 集合(Set)
集合是一种无序、不重复元素的容器。
常用方法表格:
| 方法名 | 描述 |
|---|---|
len(s) | 返回集合的大小 |
s.add(x) | 向集合添加元素 x |
s.remove(x) | 从集合中删除元素 x |
s.union(t) | 返回两个集合的并集 |
s.intersection(t) | 返回两个集合的交集 |
s.difference(t) | 返回两个集合的差集 |
示例代码:
A = {1, 2, 3}
B = {3, 4, 5}# 集合操作
print(A.union(B)) # 输出: {1, 2, 3, 4, 5}
print(A.intersection(B)) # 输出: {3}
print(A.difference(B)) # 输出: {1, 2}# 添加和删除元素
A.add(6)
A.remove(2)
print(A) # 输出: {1, 3, 6}
三、容器间的相互转换
Python 的容器可以相互转换,这使得它们在不同场景下非常灵活。
# 列表转集合
unique_items = set([1, 2, 2, 3])# 集合转列表
items = list(unique_items)# 列表转字典
pairs = [('a', 1), ('b', 2)]
d = dict(pairs)
四、总结
选择合适的容器是编程的关键:
- 需要有序数据并允许重复?使用列表。
- 数据不变且需要有序?使用元组。
- 需要快速查找数据?使用字典或集合。
- 需要唯一值集合且无序?使用集合。
| 容器类型 | 特点 | 是否可变 | 是否有序 | 是否允许重复 |
|---|---|---|---|---|
| 字符串(str) | 存储字符编码值 | 不可变 | 有序 | 允许 |
| 列表(list) | 存储变量 | 可变 | 有序 | 允许 |
| 元组(tuple) | 存储变量 | 不可变 | 有序 | 允许 |
| 字典(dict) | 存储键值对 | 可变 | 无序 | 不适用(键唯一) |
| 集合(set) | 存储键 | 可变 | 无序 | 不允许 |
通过掌握这些内置容器的特点和用法,可以更高效地组织和操作数据,从而编写简洁优雅的 Python 代码。希望本文能帮助你更好地理解和应用这些容器!

相关文章:
Python入门:7.Pythond的内置容器
引言 Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器&…...
sqlserver镜像设置
本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…...
Pandas04
Pandas01 Pandas02 Pandas03 文章目录 内容回顾1 数据的合并和变形1.1 df.append (了解)1.2 pd.concat1.3 merge 连接 类似于SQL的join1.4 join (了解) 2 变形2.1 转置2.2 透视表 3 MatPlotLib数据可视化3.1 MatPlotLib API 套路 &为什么要可视化3.2 单变量可视化3.3 双变量…...
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序(升级版)
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序升级版 调整的功能 上一个小程序只是能计算当年的农历节日的间隔时间,那么这次修改一下,任意年份的农历节日都可以,并且能输出农历节日对应的阳历日期࿰…...
c语言中void关键字的含义和用法
在 C 语言中,void 是一个特殊的关键字,主要有以下几个用途: 1. 表示函数没有返回值 当一个函数不需要返回任何值时,可以将其返回类型声明为 void。 #include <stdio.h>void printMessage() {printf("Hello, World!\…...
安卓音频之dumpsys audio
目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...
玩客云v1.0 刷机时无法识别USB
v1.0刷机时公对公插头掉了,刷机失败,再次刷机,一直提示无法识别的USB设备,此时LED一直不亮,就像是刷成砖了一样,查了好多文章最后发现正面还有一个地方需要短接。 背面的短接点 【免费】玩客云刷机包s805-…...
影刀进阶指令 | Kimi (对标ChatGPT)
文章目录 影刀进阶指令 | Kimi (对标ChatGPT)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi (对标ChatGPT) 简单讲讲RPA调用kimi实现…...
前端项目 node_modules依赖报错解决记录
1.首先尝试解决思路 npm报错就切换yarn , yarn报错就先切换npm删除 node_modules 跟 package-lock.json文件重新下载依 2. 报错信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…...
数据科学团队管理
定位: 有核心竞争力的工业算法部门与PM、RD等深度合作 业务方向:(不同产品线) 工业预测性维护与数据挖掘视觉检测、OCR 工作内容 项目需求与交付内部框架(frameworks \packages)应用demo专利、竞赛、论文 日常管理 项目管理数据管理(原…...
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…...
攻防世界web第二题unseping
这是题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {cal…...
动手学深度学习-深度学习计算-3延后初始化
目录 实例化网络 小结 到目前为止,我们忽略了建立网络时需要做的以下这些事情: 我们定义了网络架构,但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时,甚至没有足够的信息来确定模型应该包含…...
Linux | 零基础Ubuntu搭建JDK
目录 软件简介 在线文档 压缩包安装 下载地址 补:传输软件 传输等待 目录结构 解压安装 配置环境 更新环境 测试JDK结果 APT安装 软件简介 Java Development Kit (JDK) 是 Sun 公司(已被 Oracle 收购)针对 Java 开发员的软件开发工具包。自…...
Android `android.graphics` 包深度解析:架构与设计模式
Android android.graphics 包深度解析:架构与设计模式 目录 引言android.graphics 包概述核心类与架构 CanvasPaintBitmapColorPathShaderMatrix设计模式在 android.graphics 中的应用 工厂模式装饰者模式策略模式享元模式高级图形处理技术 硬件加速离屏渲染自定义 View 中的…...
WPF使用OpenCvSharp4
WPF使用OpenCvSharp4 创建项目安装OpenCvSharp4 创建项目 安装OpenCvSharp4 在解决方案资源管理器中,右键单击项目名称,选择“管理 NuGet 包”。搜索并安装以下包: OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…...
你不需要对其他成年人的情绪负责
在这个纷繁复杂的世界里,每个人都是独一无二的个体,背负着各自的故事、梦想与烦恼。在人际交往的广阔舞台上,我们时常会遇到这样的情境:朋友、同事、家人,甚至是陌生人,他们的情绪似乎总能不经意间影响到我…...
25秋招面试总结
秋招从八月底开始,陆陆续续面试了不少,现在也是已经尘埃落定,在这里做一些总结一些我个人的面试经历 腾讯 腾讯是我最早面试的一家,一开始捞我面试的是数字人民币,安全方向的岗位,属于腾讯金融科技这块。…...
高斯核函数(深入浅出)
目录 定义及数学形式主要特点应用示例小结 高斯核函数(Gaussian Kernel),又称径向基核(Radial Basis Function Kernel,RBF Kernel),是机器学习与模式识别中最常用的核函数之一。它通过在高维空间…...
支付宝百宝箱 工具,快速上手制作一个agent
作品:历史上的今天-作文素材积累 Datawhale 动手学AI Agent 关键词:AI助手开发、LangGPT框架 链接:百宝箱百宝箱平台是一款可以提供一站式 AI 原生应用的开发平台,您无需具有任何代码基础,只需通过自然语言即可三步完…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
