📜  python中的列表切片(1)

📅  最后修改于: 2023-12-03 15:34:26.058000             🧑  作者: Mango

Python列表切片

Python中的列表切片是一个强大、方便且常用的功能。它允许您在列表中选择并操作特定的元素子集,而不必复制整个列表或手动迭代它们。以下是有关Python列表切片的详细内容。

切片语法

Python的切片语法使用冒号来指定子集的起点和终点。它的语法如下:

my_list[start:end]

或者

my_list[start:end:step]

其中,start指定子集的起点(包括),end指定子集的终点(不包括),step指定切片的步长。默认的起点是0,终点是列表的长度,步长为1。

切片示例

以下是一些示例使用Python列表切片

>>> ghibli_films = ['Howl', 'Totoro', 'Ponyo', 'Mononoke', 'Marnie', 'Earthsea', 'Arrietty']
>>> ghibli_films[:3] #从头开始到第3个元素(不包括3)之间的所有元素
['Howl', 'Totoro', 'Ponyo']
>>> ghibli_films[1:4] #从第1个元素到第4个元素(不包括4)之间的所有元素
['Totoro', 'Ponyo', 'Mononoke']
>>> ghibli_films[4:] #从第4个元素到最后一个元素之间的所有元素
['Marnie', 'Earthsea', 'Arrietty']
>>> ghibli_films[::2] #隔一个元素返回所有元素(步长为2)
['Howl', 'Ponyo', 'Marnie', 'Arrietty']
切片修改列表

Python列表切片不仅允许您选择子集,还允许您使用相同的语法更改子列表。当您进行这样的更改时,Python将自动在原始列表中替换子集。以下是一些示例:

>>> ghibli_films[3] = 'Spirited Away' #替换第3个元素
>>> ghibli_films
['Howl', 'Totoro', 'Ponyo', 'Spirited Away', 'Marnie', 'Earthsea', 'Arrietty']
>>> ghibli_films[1:4] = ['Kiki', 'Grave of the Fireflies', 'Wind Rises'] #用一个更长的列表替换子集
>>> ghibli_films
['Howl', 'Kiki', 'Grave of the Fireflies', 'Wind Rises', 'Marnie', 'Earthsea', 'Arrietty']
切片复制列表

如果您不想修改原始列表,而只想从其值中选择一个子集,请使用切片语法复制列表。使用分片“[:]”是一种将整个列表复制到新变量的简便方法,而不必手动迭代。

>>> ghibli_films_copy = ghibli_films[:] #从头到尾复制整个列表
>>> ghibli_films_copy
['Howl', 'Kiki', 'Grave of the Fireflies', 'Wind Rises', 'Marnie', 'Earthsea', 'Arrietty']
切片步长为负数

切片语法中的步长参数还可以是负值。这意味着切片从后往前遍历,而不是从前往后。以下是一些示例:

>>> ghibli_films[::-1] #反转整个列表
['Arrietty', 'Earthsea', 'Marnie', 'Wind Rises', 'Grave of the Fireflies', 'Kiki', 'Howl']
>>> ghibli_films[3::-1] #从第3个元素开始反转
['Wind Rises', 'Grave of the Fireflies', 'Kiki', 'Howl']
结论

在Python中对列表进行切片是一种快速、简单、强大且常用的技巧。您可以使用它来选择子列表、更改列表、复制列表,以及进行其他有用的操作。希望这篇简短的介绍对您有所帮助!