Python 列表切片

在Python中,列表切片是一种常见的做法,也是程序员解决高效问题最常用的技术。比如为了访问python列表中的一系列元素,您需要对列表进行切片。一种方法是使用简单的切片运算符,即冒号(:)。使用此运算符,可以指定切片开始位置、结束位置以及指定步骤。列表切片从现有列表中返回一个新列表。

Python 列表切片语法

Python列表切片格式如下:

Lst[ Initial : End : IndexJump ]

如果Lst是一个列表,则上述表达式以步长IndexJump返回列表中从索引Initial到索引End的部分。

Python 列表中的索引

索引是一种访问Python List元素的技术。我们可以通过多种方式访问​​列表的元素。

正索引

在正索引的情况下,列表的第一个元素的索引号为 0,列表的最后一个元素的索引号为 N-1,其中 N 是列表中元素的总数(列表的大小)。

Python 列表切片

例子:

在此示例中,我们将使用正索引切片显示整个列表。

# 初始化列表
Lst = [50, 70, 30, 20, 90, 10, 50]

# 显示列表
print(Lst[::])

输出:

[50, 70, 30, 20, 90, 10, 50]

负索引

下图展示了一个列表及其负索引。索引 -1 表示最后一个元素,-N 表示列表的第一个元素,其中 N 是列表的长度。

Python 列表切片

例子:

在此示例中,我们将使用负索引访问列表的元素。

# 初始化列表
Lst = [50, 70, 30, 20, 90, 10, 50]

# 显示列表
print(Lst[-7::1])

输出:

[50, 70, 30, 20, 90, 10, 50]

切片

正如前面提到的,Python 中的列表切片是一种常见的做法,可以与正索引和负索引一起使用。下图说明了列表切片的技术:

Python 列表切片

例子:

在这个例子中,我们将把上面的插图转换成Python代码。

# Initialize list
Lst = [50, 70, 30, 20, 90, 10, 50]

# Display list
print(Lst[1:5])

输出:

[70, 30, 20, 90]

Python 中列表切片的示例

让我们看一些描述 Python 中列表切片用法的示例。

示例 1:将 Initial、End 或 IndexJump 等任何参数留空将导致使用默认值,即 0 作为 Initial,列表长度作为 End,1 作为 IndexJump。

# 初始化列表
List = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 显示原始列表
print("原始列表:\n", List)

print("\n切片列表:")

# 显示切片列表
print(List[3:9:2])

# 显示切片列表
print(List[::2])

# 显示切片列表
print(List[::])

输出:

原始列表:
 [1, 2, 3, 4, 5, 6, 7, 8, 9]

切片列表:
[4, 6, 8]
[1, 3, 5, 7, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

示例 2:可以通过使用负整数作为 IndexJump 参数来生成反向列表。将“Initial”和“End”留空。如果IndexJump值为负,我们需要根据反向列表选择Initial和End值。 

# 初始化列表
List = ['Jkhxw', 4, 'geeks !']

# 显示原始列表
print("原始列表:\n", List)

print("\n切片列表:")

# 显示逆向切片列表
print(List[::-1])

# 显示逆向切片列表
print(List[::-3])

# 显示逆向切片列表
print(List[:1:-2])

输出:

原始列表:
 ['Jkhxw', 4, 'geeks !']

切片列表:
['geeks !', 4, 'Jkhxw']
['geeks !']
['geeks !']

示例 3:如果某些切片表达式没有意义或不可计算,则会生成空列表。

# 初始化列表
List = [-999, 'G4G', 1706256, '^_^', 3.1496]

# 显示原始列表
print("原始列表:\n", List)

print("\n切片列表:")

# 显示切片列表
print(List[10::2])

# 显示切片列表
print(List[1:1:1])

# 显示切片列表
print(List[-1:-1:-1])

# 显示切片列表
print(List[:0:])

输出:

原始列表:
 [-999, 'G4G', 1706256, '^_^', 3.1496]

切片列表:
[] 
[] 
[] 
[]

示例 4:列表切片可用于修改列表,甚至删除列表中的元素。

# 初始化列表
List = [-999, 'G4G', 1706256, 3.1496, '^_^']

# 显示原始列表
print("原始列表:\n", List)

print("\n切片列表:")

# 修改列表中的元素
List[2:4] = ['Jkhxw', 'for', 'Geeks', '!']

# 显示修改后的列表
print(List)

# 删除列表的一部分元素
List[:6] = []

# 显示修改后的列表
print(List)

输出:

原始列表:
 [-999, 'G4G', 1706256, 3.1496, '^_^']

切片列表:
[-999, 'G4G', 'Jkhxw', 'for', 'Geeks', '!', '^_^']
['^_^']

示例 5:通过连接切片列表,可以创建新列表,甚至可以修改预先存在的列表。 

# 初始化列表
List = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 显示原始列表
print("原始列表:\n", List)

print("\n切片列表:")

# 创建新的列表
newList = List[:3] + List[7:]

# 显示新的列表
print(newList)

# 更改现有的列表
List = List[::2] + List[1::2]

# 显示更改后的列表
print(List)

输出:

原始列表:
 [1, 2, 3, 4, 5, 6, 7, 8, 9]

切片列表:
[1, 2, 3, 8, 9] 
[1, 3, 5, 7, 9, 2, 4 , 6, 8]

原创文章,作者:jkhxw,如若转载,请注明出处:https://www.jkhxw.com/python-list-slicing/

(0)
上一篇 2023年9月24日
下一篇 2023年9月24日

相关推荐

发表回复

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