超详解——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]) # 4

tup = (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) # True

lst = [1, 2, 3, 4, 5]
print(3 in lst)    # True
print(6 not in lst) # True

tup = (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))  # 13

lst = [1, 2, 3, 4, 5]
print(len(lst))  # 5

tup = (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))  # 5

tup = (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))  # 1

tup = (1, 2, 3, 4, 5)
print(min(tup))  # 1

在上述示例中,min() 函数分别返回字符串、列表和元组中的最小值。

sum() 函数

sum() 函数用于返回数字序列中所有元素的和。对于非数字序列,sum() 函数会抛出错误。

示例:

lst = [1, 2, 3, 4, 5]
print(sum(lst))  # 15

tup = (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() 函数分别返回字符串和列表中的元素和索引。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/699458.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu18.04 文件管理器无法打开的解决方法

问题:打开Ubuntu虚拟机发现文件管理器无法打开,一直在转圈圈 在终端中输入 nautilus 显示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解决措施&#xff1a…

linux安装anconda后,之前的python环境如何加载到anconda环境中

一、问题描述 由于某种原因,我们需要在系统中安装多个环境,我们自然想到安装anconda来解决这个问题。但是当我们安装好anconda后,发现我们未安装anconda之前的python环境使用不了了。那么我们如何将之前的python环境放到conda 环境中呢。 二…

“CEO在左,IP在右”企业家直播浪潮来了?

“在未来,每个人都可能成名15分钟。” 这句15分钟定律,虽然是美国波普艺术之父安迪沃霍尔在五十年前提出,但把它放在自媒体媒介兴起的当下同样适用。如今世界,成名15分钟足以给任何一个人或平台带来“泼天的富贵”。 而对于电商…

Docker 基础使用(5)Compose

文章目录 Docker Compose 基础认识Docker Compose 基础语法Docker Compose 基础指令Docker Compose 使用实例 Docker 基础使用(0)基础认识 Docker 基础使用(1)使用流程概览 Docker 基础使用(2)镜像与容器 Docker 基础使用(3)存储卷…

2024中国海洋装备展暨航海装备大会(福州海峡国际会展中心)

关于邀请参加2024中国海洋装备博览会的函 为加快推动海洋强国建设。在福建省人民政府的大力支持下,第二届中国海洋装备博览会将于2024年11月15-18日在福州举办。 博览会将进一步聚焦产业链和供应链协同创新,着力推动现代海洋产业体系建设,促进海洋科技…

Git保姆级教程

目录 Git是什么,为什么要学这个工具? 码云注册并创建仓库 Git安装 查看本地仓库状态 添加到暂存区 提交到本地库 修改文件 版本回退 创建、切换和删除分支 合并分支 克隆远端库到本地 将本地库推送到远端库 命令设置别名 Git是什么&#xf…

人工智能在【多模态:多组学+复发转移+肿瘤起源】的最新研究进展|顶刊速递·2024-06-11

小罗碎碎念 本期文献速递的主题是——人工智能多模态/多组学肿瘤的复发转移肿瘤起源。 今天的六篇文章比较特殊,大家要好好留心一下,因为选题是老板亲自下场定的,机会难得。 最近状态不太好,这周还要在北京待几天处理些事情&#…

算法day25

第一题 394. 字符串解码 解法:模拟栈的完成上述的操作; 分析: 下面以如图的字符串来分析; 首先定义一个数字栈用来存放数字,同时定义一个容器stringbuffer栈,里面用来存放字符串; 1、遇到数字&…

【总线】AMBA总线架构的发展历程

目录 引言 发展历程 第一代AMBA(AMBA 1) 第二代AMBA(AMBA 2) 第三代AMBA(AMBA 3) 第四代AMBA(AMBA 4) 第五代AMBA(AMBA 5) AMBA协议简介 ASB&#x…

VRRP多备份组(华为)

#交换设备 VRRP多备份组 当 VRRP 配置为单备份组时,业务全部由 Master 设备承担,而 Backup 设备完全处于空闲状态,没有得到充分利用。VRRP 可以通过配置多备份组来实现负载分担,有效地解决了这一问题。 VRRP 允许同一台设备的…

排序方法——《快速排序》

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

10、系统安全及应用

1、账号安全 用户的账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。 1.1 系统账号清理 在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其…

Java版本+企业电子招投标系统源代码+支持二开+Spring cloud +鸿鹄电子招投标系统

随着公司的迅速扩张,对内部采购管理的要求也随之提高。为了构建一个公平、透明、公正的采购体系,并有效降低采购成本,我们决定开发一款符合国家电子招投标法规的电子招标采购软件。该软件将提升招投标工作的公开性和透明度,通过电…

macOS Sequoia 开发者测试版下载和安装教程

macOS Sequoia 于 2024年6月10日在WWDC 2024 上发布,里面添加了AI、窗口排列、操控iPhone等功能,目前发布的为测试版本,可能很多人不知道怎么去下载安装,现在小编教一下大家怎么安装最新的 macOS Sequoia 开发者测试版。 下载 mac…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

vivado HW_SIO_GT

描述 Xilinx的可定制LogiCORE™IP集成误码率测试仪(IBERT)核心 FPGA是为评估和监控千兆收发器(GTs)而设计的。IBERT core支持系统内串行I/O验证和调试,使您能够进行测量和优化 您的设计中的高速串行I/O链路。参考综合误…

【ARM Coresight Debug 系列 -- ARMv8/v9 软件实现断点地址设置】

请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v8 软件设置段带你断点地址软件配置流程代码实现 ARMv8/v8 软件设置段带你 在ARMv8/9架构中,可以通过寄存器 DBGBVR0_EL1 设置断点。这个寄存器是一系列调试断点值寄存器中的第一个DBGBVRn_EL1,其中n…

Transformer结合U-Net登上Nature子刊!最新成果让精度和效率都很美丽

最近一种基于视觉Transformer改进的U-Net来检测多光谱卫星图像中甲烷排放的深度学习方法登上了Nature子刊。与传统方法相比,该方法可以识别更小的甲烷羽流,显著提高检测能力。 这类Transformer与U-Net结合的策略是一种创新的深度学习方法,它…

大模型生成短视频

最近看到一个开源项目可以通过AI生成短视频,然后尝试了下,感觉还不错,下面是具体步骤。 项目名叫moneyprinterTurbo,它本意是对接到Youtube,自动生成视频并上传到Youtube获取流量赚钱,所以项目名叫moneypri…

函数计时的方法

1. console 对象 可以调⽤ console 对象的 time 和 timeEnd ⽅法来对⼀段程序进⾏时间计算。例如: function fib(n) {if (n 0) return;let a arguments[1] || 1;let b arguments[2] || 1;[a, b] [b, a b];fib(--n, a, b); } console.time(); // 记时开始 fib…