Python 中 [::-1] 的作用?2025年3月6日 | 阅读 7 分钟 在下面的教程中,我们将学习 [::-1] 在 Python 中的用法。 反转 Python 中的可迭代对象在 Python 中,反转具有顺序的字符串、列表或任何其他可迭代对象用 [::-1] 表示。 例如 输出 dlrow olleH [8, 7, 6, 5] 说明 此程序使用 Python 的切片机制 [::-1] 来反转列表 num 和字符串 hello。打印时,字符串和列表会有效地反转,因为切片 [::-1] 以反向顺序遍历序列。输出显示了反转顺序的列表和字符串。 但我从未想过要学习它到底是如何工作的,所以我不得不经常查找如何在 Python 中反转 列表。 要完全理解 [::-1] 在语言中的工作原理,您必须掌握 Python 切片。此外,在理解切片之前,您最好理解索引,特别是负索引。 Python 中的索引要访问 Python 可迭代对象(如列表)中的元素,必须使用与元素位置匹配的索引。Python 索引基于零。 让我们来看一个列表索引的例子。 输出 5 6 说明 列表 nums 包含四个整数。列表的第一个和第二个元素分别赋给变量 first 和 second。当我们打印这些变量时,我们得到输出 5 6。 其他 可迭代对象,包括 字符串、元组 和 字典,都可以使用相同的方法进行索引。 例如,让我们使用索引来检索字符串的字符 输出 H e 说明 这行 Python 代码将字符串变量 word 初始化为值 "Hello"。之后,使用索引来获取字符串的第一个和第二个字符,它们分别分配给变量 first 和 second。在打印 first 和 second 值后,会产生输出 "H e",这说明了 Python 中字符串索引的基础知识。单个字符可以根据它们在字符串中的位置进行访问,从索引 0 开始。 Python 中的负索引负索引是访问 Python 中序列值的另一种方法。 负索引允许相对于序列的末尾访问元素。 示例 输出 4 3 说明 Python 代码创建了一个名为 nums 的列表,其值为 [1, 2, 3, 4]。然后它使用负索引从列表末尾访问元素。通过使用 -1,它检索最后一个元素,即 4。使用 -2,它获得倒数第二个元素,即 3。最后打印 last 和 second_last 的值后,得到输出 "4 3"。由于 -1 表示最后一个元素,-2 表示倒数第二个,以此类推,负索引允许从列表末尾访问元素。 现在您知道 Python 索引是如何工作的了。接下来,让我们讨论切片。 Python 中的切片Python 中的切片是访问序列(如列表或字符串)一部分的方法。它允许您通过指定范围来提取特定元素。这使得对元素的访问、修改和删除变得清晰且简洁。 切片与索引功能类似;然而,它检索多个值而不是一个。 切片使用索引来检索各种项。此外,这些索引是基于零的。 切片语法 Python 中有两种方法可以对可迭代对象进行切片 这样,您就可以从索引 start 开始,在 stop 索引前停止,检索一系列元素。换句话说,它生成 sequence[start]、sequence[end - 1] 以及所有中间值。 在 Python 中,您还可以通过以下方式分割可迭代对象 这意味着您将获得一个从开始到结束的步长范围内的项。 输出 [4, 5, 6] 说明 这种方法提供了一种清晰的方法来提取列表的特定部分,允许根据开始和结束索引选择列表的连续部分。 让我们再举一个例子,获取列表中第四个到第八个元素之间的每第二个值。要做到这一点,除了 start 和 stop 之外,我们还需要提供步长。 输出 [4, 6, 8] 说明 此语法通过允许您根据指定的步长选择列表的子集并跳过元素,从而为您生成自定义子序列提供了灵活性。 Python 中的负切片与负索引一样,Python 也允许负切片。这意味着您可以从序列的末尾开始切片。 例如,让我们检索列表中最后三个值 输出 [4, 5, 6] 说明 Python 代码定义了一个列表 nums,其中使用列表切片 [-4:-1] 获取子列表,从索引 -4 到索引 -1。使用负索引进行列表切片在根据元素相对位置访问元素方面提供了灵活性,并且易于从列表末尾删除元素。在这里,切片从列表中的倒数第四个条目(索引 -4)开始,在最后一个条目(索引 -1)处停止。 此外,步长也可以是负数。这样做会改变切片的 D方向。这意味着在切片序列时,它从 stop 索引之后的元素开始,一直到 start 索引(但不包括 start 索引)。 示例 输出 [5, 4, 3] 说明 Python 代码通过从索引 4 向下切片到索引 1 创建了一个名为 nums 的列表。这产生了子列表 [5,4,3]。列表切片中的负步长使列表操作变得灵活,它允许以反向顺序提取元素。 为了弄清楚这是如何工作的
从切片中省略 start 和 stop如果您希望从序列的开头开始切片,可以省略 start 值。 例如,让我们检索列表中前四个值。您可以通过仅将 4 指定为 stop 并省略 0 作为 start 来实现此目的 输出 [1, 2, 3, 4] 说明 此示例演示了如何切片 Python 中的 列表。通过使用 nums[:4],我们得到 nums 列表的前四个元素,结果是 [1, 2, 3, 4]。此切片从列表开头开始,包含索引 4 之前的所有元素。 让我们举一个例子,我们获取整数列表中第三个元素之后的所有值。为此,您只需提供 start 索引 2 并省略 stop 即可 输出 [3, 4, 5, 6, 7] 说明 上面的代码使用从索引 2 到末尾的切片来生成一个名为 part 的新列表。原始 nums 列表从索引 2 开始被截断,导致列表 part 包含 [3, 4, 5, 6, 7]。 示例 输出 [1, 2, 3, 4, 5, 6, 7] 说明 代码中使用 [::] 表示法来分割 nums 列表,该表示法表示整个列表的切片,以生成一个名为 part 的新列表。这表示 nums 的每个元素都被部分包含。 这会产生整个列表的切片。以这种方式省略 start 和 stop 没有实际应用,但有一个重要的应用。 例如,要每秒从列表中提取一个值,请在切片列表时省略开始和结束值,但指定步长 输出 [1, 3, 5, 7] 说明 代码显示初始化了一个名为 nums 的列表,其中包含从 1 到 7 的数字。接下来,使用 [::2] 表示法对 nums 列表进行切片,该表示法指定步长为 2 的切片以形成一个名为 part 的新列表。这表明每个后续的数字元素都被部分包含。因此,part 列表中包含原始 nums 列表中偶数索引处的条目 - [1, 3, 5, 7]。 您可以看到我们正在走向何方…… [::-1] 部分负切片是 Python 中反转列表的一种技术
代码看起来是这样的。 输出 [7, 6, 5, 4, 3, 2, 1] 说明 代码显示初始化了一个名为 nums 的列表,其中包含从 1 到 7 的数字。可以通过短语 nums[::-1] 以反向方式复制 nums 列表。当语法指示步长为 -1 的切片 [:: -1] 时,列表会以反向顺序扫描。part 列表中的 nums 列表项按反向顺序排列,从 7 开始到 1 结束。 这会产生原始列表的反向顺序。这正是 [::-1] 所做的! |
? 在接下来的教程中,我们将学习如何使用 Python 从字符串中提取子字符串。有多种方法可用于提取子字符串。其中一种方法是利用正则表达式。让我们讨论如何……
阅读 2 分钟
Python中的“with”语句是一个强大的工具,用于资源管理并确保可靠地执行清理操作。它通过抽象使用资源(如文件、网络连接和锁)中涉及的常见模式来简化资源管理。本文旨在...
阅读 4 分钟
计算机科学领域最基本的数据结构,不相交集,也称为 Union-Find 方法,可以有效地处理将组件分割成不相交集的问题。当处理涉及连接性和等价性关系的问题时,这种方法非常有用……
阅读 6 分钟
简介 Python 是一种多功能且强大的编程语言,以其简洁优雅而闻名。它提供了广泛的内置数据结构和方法,可以相对轻松地进行数据操作和转换。其中一种有用的方法是 asdict(),它主要与数据... .
7 分钟阅读
每个维度中的项目数量定义了数组的形状。维度是表示每个唯一成员所需的索引或下标的数量。如何获取数组的形状?我们将使用 NumPy 的 shape 属性,它返回一个成员匹配的元组...
阅读 3 分钟
?引言 Pandas 库是 Python 中用于数据操作的出色工具,现在被许多数据分析师、科学家和工程师视为不可或缺的工具。'axis' 参数是 Pandas 的一个显著特征,因为它允许沿着不同的轴执行操作。在本详细指南中,...
阅读 8 分钟
简介 网络爬虫已经发展到了另一个层次,需要从动态网站中提取数据。虽然传统网站通常是用 HTML 构建的,只显示固定内容,但动态网站可以在客户端脚本语言的帮助下动态构建其内容……
阅读9分钟
Python 中的冒号“:”运算符有什么作用?引言 Python 以其清晰性而闻名,并且在一定程度上易于理解,这是因为使用了标点符号来定义程序结构。Python 中最常遇到的标点符号之一是...
阅读 4 分钟
Python 的 os 模块提供了一种与操作系统交互并执行不同文件和操作的方式。此模块提供的一种技术是 os.unlink()。此技术用于从文件系统中删除(删除)记录。在本文中,我们...
阅读 4 分钟
引言:在本教程中,我们将学习从 Python 2 迁移到 Python 3 的 5 个简单技巧。许多重要的 Python 项目已承诺完全过渡到 Python 3。我们在数据科学中可以使用 NumPy、Pandas、SciPy 等。TensorFlow、Scikit-Learn、XGBoost 等用于...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India