龙空技术网

36岁学习python第6天:列表切片

三流程序员南宫 175

前言:

如今大家对“python中的列表切片”都比较关注,你们都需要分析一些“python中的列表切片”的相关知识。那么小编同时在网上收集了一些对于“python中的列表切片””的相关资讯,希望你们能喜欢,兄弟们快快来学习一下吧!

列表切片

切片操作基本表达式:[start_index:stop_index:step]

(1)start_index:默认开始值为 0;

(2)stop_index:结束索引,但不包括这个结束索引值。如果没有指定,则取列表长度;

(3)step 值: 步长,默认步长值为 1;

(4)当 step>0,start_index 的空值下标为 0,stop_index 为空时,值下标为列表长度,step 的方向是从左到右;

(5)当 step<0,start_index 的空值下标为列表长度,stop_index 的空值下标为 0,此时方向是从右到左;

三个值都是可选的,非必填

默认正向索引,编号从 0 开始。

支持反向索引,编号从-1 开始。

示意图

代码示例

# 生成一个列表lst = list(range(1, 50, 3))print(lst)# 取列表的索引是1的元素listA = lst[1]print("listA is :{0}".format(listA))# 取列表的索引从1到3的元素,不包含4listB = lst[1:4]print("listB is :{0}".format(listB))# 取列表的索引从2到4的元素,步长为2listC = lst[2:5:2]print("listC is :{0}".format(listC))# 倒序输出列表listD = lst[::-1]print("listD is :{0}".format(listD))# 取列表的最后一个元素val = lst[-1]print("the last val is :{0}".format(val))

以上代码的输出如下

[1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49]listA is :4listB is :[4, 7, 10]listC is :[7, 13]listD is :[49, 46, 43, 40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4, 1]the last val is :49

列表多层切片,有点链式操作的感觉

# 生成一个列表lst = list(range(1, 10, 1))print(lst)listA = lst[1:8][2:5]print(listA)输出:[1, 2, 3, 4, 5, 6, 7, 8, 9][4, 5, 6]

列表生成式

用途:简化了列表的生成

语法: [元素 for循环 if语句]

lst = [i*2 for i in range(1, 10)]print(lst)# 输出# [2, 4, 6, 8, 10, 12, 14, 16, 18]

标签: #python中的列表切片