Python - 变量列表切片

pythonserver side programmingprogramming

在本文中,我们将学习变量列表切片。如您所知,列表切片是 Python 非常有用且强大的功能,使用它我们可以快速剪切任何列表中的某些特定部分。 Python 为我们提供了各种基于特定标准或模式对元素进行切片和提取的技术和方法。

举个例子来理解 -

列表编号:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]

我们有一些随机数的列表,假设我们想从列表中从索引 8 到列表末尾切片一些部分,那么输出将如下所示 -

切片列表编号:[9, 10, 33, 34, 56, 43, 67]

让我们看看可以使用哪些不同方法执行此操作任务。

方法 1:基本切片技术

在基本列表切片技术中,我们使用简单的 Python 语法,即 list[start:end:step]。这可以使用任何给定的可选步长值从起始索引到结束索引提取任何列表的某些部分。这是一个例子

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[2:15:2]

print("原始列表编号: ", num)
print("切片列表编号: ", sliced_number)

输出

原始列表编号: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
切片列表编号: [3, 5, 7, 9, 33, 56, 67]

解释

在上面的例子中,我们从索引 2 到索引 15(不包括)进行切片,并且每 2 步移动一步。

方法 2:使用列表推导式

在这里我们将使用列表推导式技术,并且在切片列表时我们还将指定一些条件。让我们使用一个例子来看一下。

示例

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = [num for num in number[2:9] if num % 2 == 0]

print("原始列表编号: ", number)
print("切片列表编号: ",sliced_number)

输出

原始列表编号: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
切片列表编号:[4, 6, 8]

解释

在上面的例子中,我们使用列表推导技术将列表从索引 2 切分到 9。我们有一个名为 number 的列表。我们使用条件 num%2==0,它将过滤除以元素 2 的值。因此,我们的最终输出将是 [4, 6, 8],因为它的元素除以 2。

方法 3:从头开始切片

在此方法中,我们将从头开始切片列表,而不指定起始索引,我们也可以保留起始值。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[:6]

print("原始列表编号: ", num)
print("切片列表编号: ",sliced_number)

输出

原始列表编号:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
切片列表编号:[3, 5, 7, 9, 33, 56, 67]

解释

在上面的例子中,我们指定了数字为 6,因此它将从开头到索引 6(包括)对列表进行切片。如果您将数字指定为 4,那么它将从头开始切片前 4 个元素。

方法 4:切片到末尾

在此方法中,我们将从列表中的任意点切片列表直到列表末尾,而无需指定结束索引。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[8:]

print("原始列表编号: ", num)
print("切片列表编号: ", sliced_number)

输出

原始列表编号: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
切片列表编号: [9, 10, 33, 34, 56, 43, 67]

解释

在上面的例子中,我们从索引 8 开始对列表进行切片,直到最后。因此,我们得到的输出是列表的最后 7 个数字。如果我们将数字指定为 4,那么我们将获得列表的最后 3 个数字。

方法 5:跳过元素

在此方法中,我们将看到如何通过指定步长值使用切片跳过列表中的元素。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
skipped_number_list = num[::2]

print("原始列表编号: ", num)
print("跳过的数字列表: ", skipped_number_list)

输出

原始列表编号:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
跳过的数字列表:[1, 3, 5, 7, 9, 33, 56, 67]

解释

在上面的例子中,我们以 2 为步长对列表进行切片,从列表中提取每个第二个元素。如果我们将步长指定为 3,那么它将通过跳过每 2 个元素来打印元素。

方法 6:负索引

在此方法中,我们将使用负索引对变量列表进行切片。我们使用负索引从列表末尾开始计数。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[-8:-2]

print("原始列表编号: ", num)
print("切片列表编号: ", sliced_number)

输出

原始列表编号:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
切片列表编号: [8, 9, 10, 33, 34, 56]

解释

在上面的例子中,我们使用负索引来对列表进行切片。我们将索引指定为 -8(从末尾开始的第 8 个索引)到 -2(从末尾开始的第 2 个索引)。因此,列表将从第 8 个元素到从末尾开始的第 2 个元素进行切片。如果我们将索引指定为 -5 到 -1,则列表将为 [33, 34, 56, 43]。

结论

因此,列表切片是我们在日常编程中使用的非常重要的任务。在本文中,我们看到了不同的方法,例如从开头切片、列表理解、从末尾切片、跳过元素,这些方法为我们提供了对列表进行切片的不同技术。您可以根据需要使用其中任何一种。但了解不同的技术对于学习目的非常重要。


相关文章


有用资源