在Python中,列表切片是一种常见的做法,也是程序员解决高效问题最常用的技术。比如为了访问python列表中的一系列元素,您需要对列表进行切片。一种方法是使用简单的切片运算符,即冒号(:)。使用此运算符,可以指定切片开始位置、结束位置以及指定步骤。列表切片从现有列表中返回一个新列表。
Python 列表切片语法
Python列表切片格式如下:
Lst[ Initial : End : IndexJump ]
如果Lst是一个列表,则上述表达式以步长IndexJump返回列表中从索引Initial到索引End的部分。
Python 列表中的索引
索引是一种访问Python List元素的技术。我们可以通过多种方式访问列表的元素。
正索引
在正索引的情况下,列表的第一个元素的索引号为 0,列表的最后一个元素的索引号为 N-1,其中 N 是列表中元素的总数(列表的大小)。
例子:
在此示例中,我们将使用正索引切片显示整个列表。
# 初始化列表
Lst = [50, 70, 30, 20, 90, 10, 50]
# 显示列表
print(Lst[::])
输出:
[50, 70, 30, 20, 90, 10, 50]
负索引
下图展示了一个列表及其负索引。索引 -1 表示最后一个元素,-N 表示列表的第一个元素,其中 N 是列表的长度。
例子:
在此示例中,我们将使用负索引访问列表的元素。
# 初始化列表
Lst = [50, 70, 30, 20, 90, 10, 50]
# 显示列表
print(Lst[-7::1])
输出:
[50, 70, 30, 20, 90, 10, 50]
切片
正如前面提到的,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/