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 原生应用的开发平台,您无需具有任何代码基础,只需通过自然语言即可三步完…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...