Python 序列详解(含索引、切片)

yizhihongxing

序列,指的是一块连续的、可存放多个值的内存空间,这些值按顺序排列,并且每个值所在的位置都有个编号(称为索引),可以通过编号访问它们。形象化地解释,你可以将它看做是一家旅店,店中的每个房间就是序列的一个个内存空间,每个房间的房间号就是索引值。我们想去哪个房间,通过房间号(索引)查找就可以。

什么是序列

Python 序列详解(含索引、切片)

序列,指的是一块连续的、可存放多个值的内存空间,这些值按顺序排列,并且每个值所在的位置都有个编号(称为索引),可以通过编号访问它们。

形象化地解释,你可以将它看做是一家旅店,店中的每个房间就是序列的一个个内存空间,每个房间的房间号就是索引值。我们想去哪个房间,通过房间号(索引)查找就可以。

好了,您已经了解序列的基本概念了,接下来我们了解Python中的序列,具体指的是什么。

Python中的序列指的是什么

在 Python 中,由于序列特殊的存储方式,只有字符串、列表、元组、集合和字典类型为序列。

这些数据类型可以使用序列的一些操作,包括:索引、切片、相乘、相加等,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。

Python对序列的操作相对比较简单,这也是Python为什么如此简洁、高效的原因之一,接下来将为您讲解Python中操作序列的具体方法。

操作序列

通过索引查询序列元素

如上文所致,序列中的每个元素都有属于自己的索引(编号)。索引值从 0 开始递增,如下图所示。

Python 序列详解(含索引、切片)

除此之外,Python还支持索引值是负数。当索引值是负数时,序列将从右向左计数,也就是从最后一个元素开始计数,如下图所示。

Python 序列详解(含索引、切片)

使用索引可以访问到序列的任何一个元素。它的语法格式为:name[index]

其中,name表示的是序列变量名,index表示的是索引值。

以字符串“Python技术站”为例,访问首个字符和最后一位字符,可使用以下代码:

str = 'Python技术站'
print('首元素:'+str[0])
print('尾元素:'+str[-1])

输出结果为:

首元素:P
尾元素:站

序列切片

所谓“切片”,顾名思义,是将序列切开,取得序列某一范围内的元素。

切片的语法格式为:
name[start : end : step]

其中:

  • name表示的是序列变量名;
  • start参数表示切片开始的索引位置;
  • end参数表示切片结束的索引位置;
  • step参数表示切片过程中的跳跃值,也就是间隔几个元素(包含当前元素)获取一次元素值。

接下来我们通过以下实例深入理解:

sequence1=‘123456789’

#取索引3-6范围的元素:
print(sequence1[3:6])

#使用负数索引:
print(sequence1[-7:-3])

#间隔1个元素获取一次值:
print(sequence1[0:8:2])

输出结果为:

[4, 5, 6]
[3, 4, 5, 6]
[1, 3, 5, 7]

另外,[]中3个参数是有默认值的,start的默认值是0,end默认值是序列最后一位元素的索引值,step的默认值是1,并且step的值不能小于1,否则会报错。

有默认值就意味着你可以不填写这个参数。比如还是以序列sequence1为例,以下的写法都是正确的:

sequence1[::]#输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
sequence1[3::]#输出:[4, 5, 6, 7, 8, 9]
sequence1[:3:]#输出:[1, 2, 3]
sequence1[:3:2]#输出:[1, 3]

需要特别说明的是step这个参数,一般情况下很少使用,所以当用不到它时可以将它省略,例如:sequence1[0:5]

序列相加

Python 中允许将两个数据类型相同的序列使用“+”运算符进行相加,将这两个序列连接成一个序列。

比如,我们将两个字符串序列使用“+”相加,如下:

s1 = 'Python技术站:'
s2= 'pythonjishu.com'
print(s1+s2)

输出:

Python技术站:pythonjishu.com

序列相乘

Python 中可以让序列乘以一个数字n,它会将原来的序列重复n次。例如:

str='Python技术站'
print(str*3)

输出结果为:

Python技术站Python技术站Python技术站

检查元素是否包含在序列中

Python 中,可以使用关键字 in 检查某个元素在序列中是否存在,其语法格式为:

value in sequence

其中,value 表示要检查的元素,sequence 表示指定的序列。

例如,检查字符‘py’是否包含在字符串“pythonjishu.com”中,可以执行如下代码:

str="pythonjishu.com"
print('py' in str)

运行结果为: True

同理,检查某个元素是否不包含在指定的序列中的关键字为 not in,比如:

str="pythonjishu.com"
print('py' not in str)

输出结果为:
False

操作序列的函数

Python提供了几个内置函数,可用于实现与序列相关的一些常用操作:

函数 功能
len() 计算序列的长度,即返回序列中包含多少个元素。
max() 找出序列中的最大元素。
min() 找出序列中的最小元素。
list() 将序列转换为列表。
str() 将序列转换为字符串。
sum() 计算元素和。
sorted() 对元素进行排序。
reversed() 反向序列中的元素。
enumerate() 将序列组合为一个索引序列,一般用在 for 循环中。

以下为几个函数的实例:

str="pythonjishu.com"
#找出最大的字符
print(max(str))
#找出最小的字符
print(min(str))
#对字符串中的元素进行排序
print(sorted(str))

输出结果为:

y
.
['.', 'c', 'h', 'h', 'i', 'j', 'm', 'n', 'o', 'o', 'p', 's', 't', 'u', 'y']

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 序列详解(含索引、切片) - Python技术站

(2)
上一篇 2022年12月18日
下一篇 2023年1月15日

相关文章

  • Python中if else的三种形式

    if else语句是编程中经常使用的一种条件语句,用于根据给定的条件执行不同的代码块。 在 Python 中,可以使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码。 Python 中的 if else 语句可以细分为三种形式,分别是 单个if 语句、if else 语句和 if elif else 语句,这篇文章将详细介绍这三种条件…

    2023年2月15日
    00
  • Python os.path模块的7种常用函数

    Python中的os.path模块提供了一系列用于处理路径的函数,可以帮助我们方便地操作文件路径。下面我们将介绍一些常见的函数及其用法。 os.path.join():用于连接两个或多个路径名组件,返回连接后的路径名。 import os path1 = 'C:/Users' path2 = 'John' path3 …

    2023年2月25日
    00
  • Python查询列表元素的5种常用方法

    Python 中查找列表中元素的函数是编程语言中常用的功能。列表是 Python 中一种常用的数据类型,表示一组有序的元素。因此,快速查找列表中的元素非常重要。 在 Python 中,有多种方法可以查找列表中的元素,包括以下函数: in 运算符 in 运算符用于快速检查列表中是否存在某个指定的元素。语法如下: if element in list: # do…

    2023年2月14日
    00
  • Python __new__()方法的定义与作用

    new和init是Python中两个特殊的方法,其中new方法比较难理解,也比较少用到。这里我们详细讲解一下new方法的作用和用法。 new方法是Python中一个比较特殊的方法,它是一个类的构造器,用于创建类的实例。 new方法有以下两个特点: 在实例化类时,new方法会在init方法之前被调用。 new方法是类方法,它需要传递一个cls参数,这个参数表示…

    2023年2月23日
    00
  • 运行第一个Python程序

    Python作为解释型的编程语言,支持两种编程方式: 交互式编程 源文件编程 交互式编程 交互式编程指的是在命令行窗口打开python运行环境,在运行环境中输入代码,每输入一段代码运行一次程序,就好像跟计算机对话一样,所以称为交互式编程。 源文件编程 源文件编程意思是创建一个.py的文件,文件中可以写入大段的代码,运行时解释器会逐行读取并执行源文件的代码程序…

    2022年11月1日
    00
  • Python重载运算符详解

    所谓重载运算符(operator overloading),指的是在类中定义并实现一个与运算符对应的处理方法,这样当类对象在进行运算符操作时,系统就会调用类中相应的方法来处理。 也就是说,可以通过重载运算符来改变内置对象的行为,使得这些对象可以支持自定义的运算符操作,比如对类对象的+、-、×、÷等。 Python 中可以重载的运算符有很多,下面列举了一些常用…

    2023年2月23日
    00
  • 如何创建并导入 Python 包?

    Python中的包(Package)是一种组织Python模块的方式,用于更好地组织和管理模块。本质上,包就是一个文件夹,它包含一组模块和一个名为init.py的文件,该文件必须存在于包的根目录下,以指示该文件夹是一个Python包。 下面介绍如何创建和导入Python包: 创建Python包 创建Python包的步骤如下: 创建一个文件夹,并将其命名为包名…

    2023年2月25日
    00
  • 详解Python中的继承机制!

    在 Python 中,继承是一种面向对象编程的重要机制,它允许你创建一个新类,这个新类可以从现有的类中继承属性和方法。这个被继承的类通常被称为父类或基类,新创建的类被称为子类或派生类。 Python 中的继承通过在子类定义中指定父类来实现。子类可以访问父类中的属性和方法,也可以添加自己的属性和方法。在 Python 中,继承支持多级继承,一个子类可以继承自多…

    2023年2月22日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(3条)

  • Python修改 list列表元素 - Python技术站的头像

    […] 可以看到,它将索引值从2到4的元素,依次进行了替换。并且根据切片的特性,它修改的是索引2、3、4共3个元素,不会将索引值为5的元素修改掉。想了解更多切片的内容,可点击《Python 序列详解(含索引、切片) —Python技术站》文章查看。 […]

  • 给Python list列表添加元素_Python技术站的头像

    […] 这里会看到,在追加字符串元素'Big Data'时,extend函数会将其当成两个元素追加进去。这是因为extend函数识别的是序列,在《Python 序列详解》一文我们已知字符串也是序列的一种,它的每个字符都是单个元素,所以extend会进行逐一追加。 […]

  • Python for循环高级用法 - Python技术站的头像

    […] 在这里,是循环变量,可以是任何合法的Python标识符,是需要进行迭代的序列,可以是一个列表、元组、字典或其他可迭代对象。在每一次迭代中,将会被赋值为序列中的一个元素,然后执行循环体中的语句。 […]

合作推广
合作推广
分享本页
返回顶部