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 原生应用的开发平台,您无需具有任何代码基础,只需通过自然语言即可三步完…...
AI 模型压缩与推理加速
AI模型压缩与推理加速:让智能更高效 近年来,人工智能技术飞速发展,深度学习模型在图像识别、自然语言处理等领域取得了显著成果。随着模型规模的不断扩大,计算资源和存储需求也急剧增加,导致模型在部署时面临效率低、…...
配置Claude Code遇到Unable to connect to Anthropic services Failed to connect to api.anthropic.cOm: ERR_B
在PowerShell里输入[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:xxxxx", "User")[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:xxxxx", "User")[Enviro…...
交通运输部关于印发《交通运输综合应急预案》等5项突发事件应急预案的通知
交通运输部于 2026 年印发的《交通运输综合应急预案》等五项突发事件应急预案,构建起总领统筹、分领域专项、全链条衔接的交通运输应急管理体系,分别从综合协同、公路设施、水路运行、道路运输、工程建设五个维度,明确了突发事件预防、预警、…...
得意黑Smiley Sans字体全平台部署与深度应用指南
得意黑Smiley Sans字体全平台部署与深度应用指南 【免费下载链接】smiley-sans 得意黑 Smiley Sans:一款在人文观感和几何特征中寻找平衡的中文黑体 项目地址: https://gitcode.com/gh_mirrors/smi/smiley-sans 1 价值定位:现代设计的字体革新选择…...
LAION CLAP音频分类控制台效果展示:交通噪声中精准识别‘救护车鸣笛’真实案例
LAION CLAP音频分类控制台效果展示:交通噪声中精准识别‘救护车鸣笛’真实案例 1. 引言:从嘈杂背景中听清关键声音 想象一下这个场景:你正在一个繁忙的城市路口,周围充斥着汽车引擎声、喇叭声、人声和风声。突然,一阵…...
重构游戏串流体验:Sunshine如何突破设备与场景限制
重构游戏串流体验:Sunshine如何突破设备与场景限制 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 当你想在平板上玩3A游戏时,最大的障碍是什么?…...
鸿蒙中 免密身份认证:Online Authentication Kit
本文同步发表于微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新 在应用开发中,身份认证是一个核心功能。传统的密码登录方式存在记忆成本高、安全性风险大等问题。鸿蒙系统提供了Online Authentication Kit(在线…...
基于GTE文本向量的智能应用开发:快速构建文本分析服务
基于GTE文本向量的智能应用开发:快速构建文本分析服务 1. GTE文本向量技术概览 GTE(General Text Embedding)文本向量模型是当前中文自然语言处理领域的重要技术突破。这个基于ModelScope的预训练模型能够将文本转换为高维向量表示…...
Graphormer与YOLOv5跨界应用:从分子结构到材料缺陷的视觉识别
Graphormer与YOLOv5跨界应用:从分子结构到材料缺陷的视觉识别 1. 当图神经网络遇上目标检测 你可能很难想象,一个原本用于分析分子结构的AI模型,和一个专门检测图像中物体的算法,能擦出怎样的火花。这就是我们今天要展示的Graph…...
实战应用:基于快马AI构建openclaw101官网从登录到跳转的完整流程
今天想和大家分享一个基于InsCode(快马)平台实现的登录系统实战案例。这个项目模拟了openclaw101官网从登录到跳转的完整流程,特别适合想学习前后端交互的同学参考。 项目整体架构 这个登录系统采用经典的前后端分离设计。前端使用纯HTMLCSSJavaScript实现页面交互&…...
