超详解——Python 序列详解——基础篇
目录
1. 序列的概念
字符串(String)
列表(List)
元组(Tuple)
2. 标准类型操作符
连接操作符(+)
重复操作符(*)
索引操作符([])
切片操作符([:])
成员操作符(in 和 not in)
3. 序列的切片操作
基本切片
省略索引
切片对象
4. 序列内建函数
len() 函数
max() 函数
min() 函数
sum() 函数
sorted() 函数
reversed() 函数
enumerate() 函数
1. 序列的概念
序列是一种数据结构,它存储了一组有序的元素。这些元素可以是任何类型的对象,甚至是其他序列。在Python中,最常用的序列类型包括:
- 字符串(String):由字符组成的序列,用于表示文本。
- 列表(List):由任意类型的对象组成的可变序列。
- 元组(Tuple):由任意类型的对象组成的不可变序列。
每个序列中的元素都有一个唯一的索引,可以通过索引访问特定的元素。序列的索引从0开始,正向索引从左到右依次增加,反向索引从右到左依次减少。
字符串(String)
字符串是字符的有序集合,用于表示文本信息。字符串使用单引号('
)、双引号("
)或三引号('''
或 """
)包围。字符串是不可变的,即创建后不能更改。
示例:
s = "Hello, World!"
列表(List)
列表是Python中最常用的数据结构之一,可以存储任意类型的元素。列表是可变的,可以在创建后修改其内容。列表使用方括号([]
)包围,元素之间用逗号分隔。
示例:
lst = [1, 2, 3, "Python", [5, 6]]
元组(Tuple)
元组与列表类似,但元组是不可变的,即一旦创建就不能修改其内容。元组使用圆括号(()
)包围,元素之间用逗号分隔。
示例:
tup = (1, 2, 3, "Python", (5, 6))
2. 标准类型操作符
Python提供了一些标准操作符,可以用于操作序列。这些操作符包括连接、重复、索引、切片和成员资格测试。
连接操作符(+)
连接操作符用于将两个序列连接成一个新的序列。
示例:
s1 = "Hello, "
s2 = "World!"
s3 = s1 + s2 # "Hello, World!"lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = lst1 + lst2 # [1, 2, 3, 4, 5, 6]tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
tup3 = tup1 + tup2 # (1, 2, 3, 4, 5, 6)
重复操作符(*)
重复操作符用于将序列重复指定的次数,生成一个新的序列。
示例:
s = "Hello"
s_repeated = s * 3 # "HelloHelloHello"lst = [1, 2, 3]
lst_repeated = lst * 2 # [1, 2, 3, 1, 2, 3]tup = (1, 2, 3)
tup_repeated = tup * 2 # (1, 2, 3, 1, 2, 3)
索引操作符([])
索引操作符用于访问序列中的单个元素。正向索引从0开始,反向索引从-1开始。
示例:
s = "Python"
print(s[0]) # "P"
print(s[-1]) # "n"lst = [1, 2, 3, 4, 5]
print(lst[2]) # 3
print(lst[-2]) # 4tup = (1, 2, 3, 4, 5)
print(tup[1]) # 2
print(tup[-3]) # 3
切片操作符([:])
切片操作符用于访问序列中的一部分元素,生成一个新的序列。切片的语法为 序列[开始:结束:步长]
。
示例:
s = "Hello, World!"
print(s[0:5]) # "Hello"
print(s[7:12]) # "World"
print(s[::-1]) # "!dlroW ,olleH" (反转字符串)lst = [1, 2, 3, 4, 5, 6]
print(lst[1:4]) # [2, 3, 4]
print(lst[:3]) # [1, 2, 3]
print(lst[::2]) # [1, 3, 5]tup = (1, 2, 3, 4, 5, 6)
print(tup[2:5]) # (3, 4, 5)
print(tup[::3]) # (1, 4)
成员操作符(in 和 not in)
成员操作符用于检查元素是否存在于序列中。
示例:
s = "Hello, World!"
print("H" in s) # True
print("h" not in s) # Truelst = [1, 2, 3, 4, 5]
print(3 in lst) # True
print(6 not in lst) # Truetup = (1, 2, 3, 4, 5)
print(2 in tup) # True
print(7 not in tup) # True
3. 序列的切片操作
切片是从序列中提取子序列的操作。切片操作返回一个新的序列,不修改原序列。切片操作的语法为 序列[开始:结束:步长]
。其中,开始
和结束
为索引位置,步长
表示元素间的间隔,默认为1。
基本切片
最简单的切片操作只包含开始和结束索引。
示例:
s = "Hello, World!"
print(s[0:5]) # "Hello"
print(s[7:12]) # "World"
在上述示例中,s[::2]
每隔一个字符提取一次,而 s[::-1]
以步长-1反向提取字符,实现字符串的反转。
省略索引
当省略开始或结束索引时,Python会使用默认值。省略开始索引表示从序列的起始位置开始,省略结束索引表示到序列的末尾。
示例:
s = "Hello, World!"
print(s[:5]) # "Hello"
print(s[7:]) # "World!"
print(s[:]) # "Hello, World!" (整个字符串)
在上述示例中,s[:5]
提取从起始位置到索引4的字符,s[7:]
提取从索引7到末尾的字符。
切片对象
切片对象是通过 slice()
函数创建的,用于表示切片操作。切片对象可以用于在任何支持切片的对象中应用相同的切片。
示例:
s = "Hello, World!"
slice_obj = slice(0, 5)
print(s[slice_obj]) # "Hello"lst = [1, 2, 3, 4, 5]
print(lst[slice_obj]) # [1, 2, 3, 4, 5]
在上述示例中,slice_obj
表示从索引0到索引4的切片。这个切片对象可以应用于字符串和列表,结果分别为 "Hello" 和 [1, 2, 3, 4, 5]
。
4. 序列内建函数
Python提供了一些内建函数,用于操作和处理序列。这些函数包括:
len()
:返回序列的长度。max()
:返回序列中的最大值。min()
:返回序列中的最小值。sum()
:返回序列中所有元素的和(适用于数字序列)。sorted()
:返回序列的排序副本。reversed()
:返回序列的反转迭代器。enumerate()
:返回序列中的元素和索引。
len()
函数
len()
函数用于返回序列的长度,即序列中元素的个数。
示例:
s = "Hello, World!"
print(len(s)) # 13lst = [1, 2, 3, 4, 5]
print(len(lst)) # 5tup = (1, 2, 3, 4, 5)
print(len(tup)) # 5
在上述示例中,len()
函数分别返回字符串、列表和元组的长度。
max()
函数
max()
函数用于返回序列中的最大值。对于字符串,max()
函数返回字典序中最大的字符。
示例:
s = "Hello, World!"
print(max(s)) # "r"lst = [1, 2, 3, 4, 5]
print(max(lst)) # 5tup = (1, 2, 3, 4, 5)
print(max(tup)) # 5
在上述示例中,max()
函数分别返回字符串、列表和元组中的最大值。
min()
函数
min()
函数用于返回序列中的最小值。对于字符串,min()
函数返回字典序中最小的字符。
示例:
s = "Hello, World!"
print(min(s)) # " "lst = [1, 2, 3, 4, 5]
print(min(lst)) # 1tup = (1, 2, 3, 4, 5)
print(min(tup)) # 1
在上述示例中,min()
函数分别返回字符串、列表和元组中的最小值。
sum()
函数
sum()
函数用于返回数字序列中所有元素的和。对于非数字序列,sum()
函数会抛出错误。
示例:
lst = [1, 2, 3, 4, 5]
print(sum(lst)) # 15tup = (1, 2, 3, 4, 5)
print(sum(tup)) # 15
在上述示例中,sum()
函数分别返回列表和元组中所有元素的和。
sorted()
函数
sorted()
函数返回序列的排序副本。对于字符串,sorted()
函数返回字符按字典序排序的新列表。
示例:
s = "Hello, World!"
print(sorted(s)) # [' ', '!', ',', 'H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']lst = [5, 3, 1, 4, 2]
print(sorted(lst)) # [1, 2, 3, 4, 5]tup = (5, 3, 1, 4, 2)
print(sorted(tup)) # [1, 2, 3, 4, 5]
在上述示例中,sorted()
函数分别返回字符串、列表和元组的排序副本。
reversed()
函数
reversed()
函数返回序列的反转迭代器。
示例:
s = "Hello, World!"
print(''.join(reversed(s))) # "!dlroW ,olleH"lst = [1, 2, 3, 4, 5]
print(list(reversed(lst))) # [5, 4, 3, 2, 1]tup = (1, 2, 3, 4, 5)
print(list(reversed(tup))) # [5, 4, 3, 2, 1]
在上述示例中,reversed()
函数分别返回字符串、列表和元组的反转迭代器,并通过 list()
或 join()
方法将其转换为列表或字符串。
enumerate()
函数
enumerate()
函数返回序列中的元素和索引。
示例:
s = "Hello"
for index, char in enumerate(s):print(f"{index}: {char}")lst = ["a", "b", "c", "d"]
for index, value in enumerate(lst):print(f"{index}: {value}")
在上述示例中,enumerate()
函数分别返回字符串和列表中的元素和索引。
相关文章:

超详解——Python 序列详解——基础篇
目录 1. 序列的概念 字符串(String) 列表(List) 元组(Tuple) 2. 标准类型操作符 连接操作符() 重复操作符(*) 索引操作符([]) …...

DVWA-DC-6
靶机IP:192.168.20.140 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫描靶机端口及版本信息 dirsearch扫目录 发现是个wordpress建站 我们去访问前端界面 存在重定向,修改hosts文件,加入192.168…...
ubuntu早期版本以及18.04后的版本,通过rc.local配置开机自启
在ubuntu早期版本以及18.04后的版本,还是支持在rc.local中进行操作开机自启。 1、编辑rc.local文件 cat <<EOF >/etc/rc.local #!/bin/sh -e # rc.local # This script is executed at the end of each multiuser runlevel. # Make sure that the script…...
【环境搭建】1.阿里云ECS服务器 安装jdk8
在阿里云服务器上安装 JDK 8 可以通过以下步骤完成。假设你使用的是 CentOS 或者其他基于 Red Hat 的发行版或Alibaba Cloud Linux 3.2104 LTS 64位。 1.更新系统软件包 sudo yum update -y2.安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.8…...

idea插件开发之定义侧边栏
写在前面 看下如何在侧边栏定义窗口,如下的效果: 1:正戏 先来定义UI,随便拖拽个组件,就看个效果: 接着定义一个工厂类来创建这个UI,需要实现接口com.intellij.openapi.wm.ToolWindowFactor…...

HarmonyOS未来五年的市场展望
一、引言 随着科技的不断进步和消费者对于智能化设备需求的日益增长,操作系统作为连接硬件与软件的核心平台,其重要性愈发凸显。HarmonyOS(鸿蒙系统),作为华为自主研发的分布式操作系统,自诞生以来便备受瞩…...
R语言:什么是向量化操作(Vectorization)?
在R语言中,向量化操作是一个非常重要且强大的概念。它不仅提高了代码的简洁性和可读性,还大大提升了代码的执行效率。本文将详细介绍什么是向量化操作,并通过几个示例来展示其应用。 什么是向量化操作? 向量化操作是指在不使用显…...
Python 机器学习 基础 之 【实战案例】中药数据分析项目实战
Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 目录 Python 机器学习 基础 之 【实战案例】中药数据分析项目实战 一、简单介绍 二、中药数据分析项目实战 三、数据处理与分析实战 1、数据读取 2、中药材数据集的数据处理与分析 2.1数据清洗 2.2、 提取别…...
python中报错“ModuleNotFoundError: No module named ‘docx2txt‘”
python中from langchain_community.document_loaders import Docx2txtLoader报错“ModuleNotFoundError: No module named ‘docx2txt’” 问题描述: python中from langchain_community.document_loaders import Docx2txtLoader报错“ModuleNotFoundError: No module named ‘…...
json.dumps参数
json.dumps()是 Python 中json 模块的一个函数,用于将 Python 对象编码成 JSON格式的字符串。这个函数有几个常用的参数,下面是一些主要的参数及其描述: 1. **obj**: 必需。要转换的 Python 对象。 2. *…...
未来已来,划时代革命性产品——全息数字人管家系统,全网首发
尊敬的投资人、亲爱的网友们: 大家好,我是数字人管家项目总设计师,我叫William wang。在这个科技日新月异的时代,我们正站在一个前所未有的交汇点上,数字与现实的边界日益模糊,智能技术正以前所未有的方式…...
psql导入数据报错排查
问题:采用pg_dump导出表数据后,用psql导入表数据,导入时报错 无效的命令 \N定位该问题的方法 --进入psql \set ON_ERROR_STOP on --退出psqlpsql -U postgres -d test -v ON_ERROR_STOPon < /home/postgres/test.dmp参考文章:…...

项目:双人五子棋对战-对战模块(6)
完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 当玩家进入到游戏房间后, 就要开始一局紧张而又刺激的五子棋对战了, 本文将就前端后端的落子与判断胜负的部分作详细讲解. 模块详细讲解 约定前后端交互的接口 首先是建立连接后, 服务器需要生成一些游戏的初始信息(可…...

LeakSearch:针对网络公开凭证的安全扫描与检测工具
关于LeakSearch 在红队演戏过程中,往往需要获取到针对目标域的访问权限。在这个过程中,很多红队人员会选择使用暴露在互联网上的代理服务器来实现目标域的访问,那么此时就需要在互联网上收集公开暴露的凭证信息。 对于蓝队来说,…...

ArcoDesgin a-model中自定义样式model-class无效
增加黄框代码解决 原因是,动态加载的组件默认渲染在body下面,与#app平级。样式设置无效 加上:render-to-body“false”,让组件不渲染到body下,渲染在app下面,样式设置生效...
持续总结中!2024年面试必问 20 道分布式、微服务面试题(十)
上一篇地址:持续总结中!2024年面试必问 20 道分布式、微服务面试题(九)-CSDN博客 十九、请描述一种微服务部署策略。 微服务部署策略是确保微服务架构中各个独立服务能够高效、稳定地部署到生产环境中的方法。以下是一些常见的微…...

北航第四次数据结构与程序设计编程题复习
到期末了,所以再来复习一下以前的作业。 北航第四次数据结构与程序设计编程题 一、栈操作(栈-基本题)二、C程序括号匹配检查三、计算器(表达式计算-后缀表达式实现,结果为浮点)四、文本编辑操作模拟&#…...
golang调用外部程序包os/exec中的 Command和CommandContext 函数创建的Cmd对象的区别
在go语言中,我们可以通过os/exec包中的Command和CommandContext 函数创建对应的外部程序执行Cmd对象, 这2个函数创建的cmd命令执行对象是有区别的,CommandContext创建的对象可以携带上下文,这个主要用于我们通过cancel函数给对应的…...

Redis进阶知识个人汇总
持久化 三种方式实现它的持久化: RDB持久化 全称Redis数据备份文件,又称Redis数据快照 这种就是将Redis内存中所有数据记录到磁盘中,当实例出故障后,从磁盘中读快照文件进行恢复数据。 一般使用bgsave指令实现 复制主线程得到一…...
从中序与后序遍历序列构造二叉树-力扣
中序遍历序列存放节点的顺序是左中右,后序遍历存放节点的顺序是左右中后序遍历序列的最后一个节点即为二叉树的根节点由于每个值在二叉树中都是唯一的,那么根据根节点的值,就可以将中序遍历序列一分为二,前部分存储的是根节点左子…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema,不需要复杂的查询,只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 :在几秒钟…...