前面描述了
list
中单个元素如何获取,如果想获取其中连续的部分元素,该如何实现呢。
这里可以通过切片
(slices)
的形式来获取部分连续的元素。
c_list = ['James', 'Ava', 'Michael', 'Emma', 'Emily', 'Jacob']
print(c_list)
运行结果:
list
中以切片形式使用时,其结构可参考
new_list
[
start
:
end
:
step
]
其中
“start”
和
“end”
表示索引位置的开始和结束,选取的元素包含
“start”
,
但不包含
“end”
。
“step”
表示步长,默认情况下,
“step”
为
1
,演示如下:
print(c_list[1:3])
运行结果:
以上中,
1:3
表示切片选取的是第
2
个元素和第
3
个元素,即包含索引为
1
和索引为
2
的元素。相当于获 取 c_list[1]
和
c_list[2]
print(c_list[::2])
运行结果:
example-2
中
“start”
和
“end”
为空的时候,默认是全选,即
“start”
为
0
,
“end”
为
len
(
c_list
)-1
。
所以
c_list
[::2]
表示的是从索引为
0
开始,以步长为
2
来选择元素。
接下来看以下结合上述两个例子的演示:
print(c_list[1:3:2])
运行结果:
前面提到,new_list[-1] 表示获取最后一个元素,在切片的步长 “step” 中,也可以是负数,比如 “-1”:
print(c_list[::-1])
运行结果:
从上述结果可以看出,当
“step”
为
-1
时,我们发现是将列表进行了逆序排序。
再看看步长为
“-2”
时的结果:
print(c_list[::-2])
运行结果:
可以这么理解,当步长为
正数
时,是
从左到右以该步长
来获取列表中的元素;
而当步长为
负数
时,是
从右到左以该步长的绝对值
来获取列表中的元素。