当前位置: 首页 > news >正文

超详解——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后的版本&#xff0c;还是支持在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插件开发之定义侧边栏

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

HarmonyOS未来五年的市场展望

一、引言 随着科技的不断进步和消费者对于智能化设备需求的日益增长&#xff0c;操作系统作为连接硬件与软件的核心平台&#xff0c;其重要性愈发凸显。HarmonyOS&#xff08;鸿蒙系统&#xff09;&#xff0c;作为华为自主研发的分布式操作系统&#xff0c;自诞生以来便备受瞩…...

R语言:什么是向量化操作(Vectorization)?

在R语言中&#xff0c;向量化操作是一个非常重要且强大的概念。它不仅提高了代码的简洁性和可读性&#xff0c;还大大提升了代码的执行效率。本文将详细介绍什么是向量化操作&#xff0c;并通过几个示例来展示其应用。 什么是向量化操作&#xff1f; 向量化操作是指在不使用显…...

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&#xff08;&#xff09;是 Python 中json 模块的一个函数&#xff0c;用于将 Python 对象编码成 JSON格式的字符串。这个函数有几个常用的参数&#xff0c;下面是一些主要的参数及其描述&#xff1a; 1. **obj**&#xff1a; 必需。要转换的 Python 对象。 2. *…...

未来已来,划时代革命性产品——全息数字人管家系统,全网首发

尊敬的投资人、亲爱的网友们&#xff1a; 大家好&#xff0c;我是数字人管家项目总设计师&#xff0c;我叫William wang。在这个科技日新月异的时代&#xff0c;我们正站在一个前所未有的交汇点上&#xff0c;数字与现实的边界日益模糊&#xff0c;智能技术正以前所未有的方式…...

psql导入数据报错排查

问题&#xff1a;采用pg_dump导出表数据后&#xff0c;用psql导入表数据&#xff0c;导入时报错 无效的命令 \N定位该问题的方法 --进入psql \set ON_ERROR_STOP on --退出psqlpsql -U postgres -d test -v ON_ERROR_STOPon < /home/postgres/test.dmp参考文章&#xff1a…...

项目:双人五子棋对战-对战模块(6)

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

LeakSearch:针对网络公开凭证的安全扫描与检测工具

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

ArcoDesgin a-model中自定义样式model-class无效

增加黄框代码解决 原因是&#xff0c;动态加载的组件默认渲染在body下面&#xff0c;与#app平级。样式设置无效 加上:render-to-body“false”&#xff0c;让组件不渲染到body下&#xff0c;渲染在app下面&#xff0c;样式设置生效...

持续总结中!2024年面试必问 20 道分布式、微服务面试题(十)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道分布式、微服务面试题&#xff08;九&#xff09;-CSDN博客 十九、请描述一种微服务部署策略。 微服务部署策略是确保微服务架构中各个独立服务能够高效、稳定地部署到生产环境中的方法。以下是一些常见的微…...

北航第四次数据结构与程序设计编程题复习

到期末了&#xff0c;所以再来复习一下以前的作业。 北航第四次数据结构与程序设计编程题 一、栈操作&#xff08;栈-基本题&#xff09;二、C程序括号匹配检查三、计算器&#xff08;表达式计算-后缀表达式实现&#xff0c;结果为浮点&#xff09;四、文本编辑操作模拟&#…...

golang调用外部程序包os/exec中的 Command和CommandContext 函数创建的Cmd对象的区别

在go语言中&#xff0c;我们可以通过os/exec包中的Command和CommandContext 函数创建对应的外部程序执行Cmd对象&#xff0c; 这2个函数创建的cmd命令执行对象是有区别的&#xff0c;CommandContext创建的对象可以携带上下文&#xff0c;这个主要用于我们通过cancel函数给对应的…...

Redis进阶知识个人汇总

持久化 三种方式实现它的持久化&#xff1a; RDB持久化 全称Redis数据备份文件&#xff0c;又称Redis数据快照 这种就是将Redis内存中所有数据记录到磁盘中&#xff0c;当实例出故障后&#xff0c;从磁盘中读快照文件进行恢复数据。 一般使用bgsave指令实现 复制主线程得到一…...

从中序与后序遍历序列构造二叉树-力扣

中序遍历序列存放节点的顺序是左中右&#xff0c;后序遍历存放节点的顺序是左右中后序遍历序列的最后一个节点即为二叉树的根节点由于每个值在二叉树中都是唯一的&#xff0c;那么根据根节点的值&#xff0c;就可以将中序遍历序列一分为二&#xff0c;前部分存储的是根节点左子…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space

问题&#xff1a;IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案&#xff1a;将编译的堆内存增加一点 位置&#xff1a;设置setting-》构建菜单build-》编译器Complier...