📅  最后修改于: 2023-12-03 15:34:26.058000             🧑  作者: Mango
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中对列表进行切片是一种快速、简单、强大且常用的技巧。您可以使用它来选择子列表、更改列表、复制列表,以及进行其他有用的操作。希望这篇简短的介绍对您有所帮助!