Python 切片,只要是有序的数据类型都可以进行切片操作,如字符串、列表、元组、字典(索引是键)····
索引从头开始是以0为头递增1,例如0、1、2、3、4·····
从尾开始是以-1开始往头递减,例如-1、-2、-3、-4·····
切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。其基本语法如下:
list_slice = source_list[start:end:step]
其中:
-
source_list:被切片的源列表;
-
list_slice:切片后生成的子序列列表;
-
start:切片起始索引位置,省略则从头开始;
-
end:切片结束索引位置,省略则切至列表末尾;
-
step:切片步长,可选参数,表示每N个元素取一个,默认为1。
注意:切片和range()函数一样,Python 会自动到达所指定切片结束索引位置的前面一个元素停止。
例如,下面是我已经点好的菜名列表,现在朋友点的菜单中包含我的前三个菜名,输出朋友的菜单:
my_menu = ['fish','pork','pizza','carrot']
print(my_menu[1:4:2]) #index: 1 3
print(my_menu[:3]) #index: 0 1 2
print(my_menu[2:]) #index: 2 3
输出结果:
['pork','carrot']
['fish','pork','pizza']
['pizza','carrot']
负数索引返回的是离列表末尾相应间隔的元素,列表末尾元素的索引是从-1开始的。例如,朋友的菜单是包含我的菜单最后3个菜名:
my_menu=['fish','pork','pizza','carrot']
print(my_menu[-3:]) # index: -3 -2 -1
输出结果:
['pork','pizza','carrot']