python基础——列表切片操作

举报
AOAIYI 发表于 2023/04/25 10:30:48 2023/04/25
【摘要】 列表是写在方括号[]之间、用逗号分隔开的元素列表。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

一、实验目的

掌握列表切片操作

二、实验原理

1、列表是写在方括号[]之间、用逗号分隔开的元素列表。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

2、和字符串一样,列表同样可以截取和被索引,列表被截取后返回一个包含所需元素的新列表,List中的元素是可以改变的。

3、切片,在形式上,切片使用2个冒号分割的3个数字来完成,第一个数字表示切片的开始位置(默认为0),第二个数字表示切片的截止(但不包括)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以同时省略最后一个冒号。

4、切片适用于列表、元组、字符串、range对象等类型,应用于列表时具有最为强大的功能。可以使用切片来截取列表中的任何部分返回得到一个新列表,也可以通过切片来修改和删除列表中的部分元素,甚至可以通过切片操作为列表对象增加元素。

5、切片返回的是列表元素是潜复制,与列表对象的直接赋值不一样

6、切片常见格式如下:

格式:【start : end : step】

  • start:起始索引,从0开始,-1表示结束

  • end:结束索引

  • step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值

注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引

三、实验环境

Python 3.6以上

Ipython

PyCharm

四、实验内容

列表切片操作

五、实验步骤

1.正向截取列表的全部内容,示例如下:

list1=[1,2,3,4,5,6]
list2=list1[:]
list3=list1[::]
list4=list1[::1]
print('list2:',list2)
print('list3:',list3)
print('list4:',list4)

注:list2=list1[:] 截取全部内容,可以用来将一个列表拷给另一个列表
list3=list1[::]从位置0开始到结束,默认每次增加1

2.反向输出列表全部内容,示例如下:

list1=[1,2,3,4,5,6]
list2=list1[::-1]
print('list2:',list2)

注:step的正负决定了切片结果中的元素排列的先后

3.取偶数位置和奇数位置的元素,示例如下:

listoj=[1,2,3,4,5,6]
listo=listoj[1::2]
listj=listoj[::2]
print('listo:',listo)
print('listj:',listj)

4.我们以截取列表中前两个元素为例,列出多种切片方法,示例如下:

lists=["A","B","C","D"]
list1=lists[0:2]
list2=lists[0:-2]
list3=lists[-4:-2]
list4=lists[-4:2]
print('list1:',list1)
print('list2:',list2)
print('list3:',list3)
print('list4:',list4)

5.截取列表中后两个元素,并且倒序输出为例,列出多种切片方法,示例如下:

lists=["A","B","C","D"]
list1=lists[-1:-3:-1]
list2=lists[-1:1:-1]
list3=lists[3:1:-1]
list4=lists[3:-3:-1]
print('list1:',list1)
print('list2:',list2)
print('list3:',list3)
print('list4:',list4)

6. start和end之间的元素间隔应和step方向一致,否则会切出空列表,示例如下:

lists=["A","B","C","D"]
list1=lists[-1:-3]
list2=lists[-1:1]
list3=lists[3:1]
list4=lists[3:-3]
print('list1:',list1)
print('list2:',list2)
print('list3:',list3)
print('list4:',list4)

7.(1)切片的结束位置大于列表长度时,从列表尾部截断;
(2)切片的开始位置大于列表长度时,返回空列表;
示例如下:

lists=[0,1,2,3,4,5,6,7,8,9]
list1=lists[0:20]
list2=lists[15:]
list3=lists[15:3:-1]
print('list1:',list1)
print('list2:',list2)
print('list3:',list3)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。