Python知识点学习——切片

参考链接:1.Python列表切片详解([][:][::])_白辰甲-CSDN博客_python切片

                  2.Python学习笔记之列表切片(六)_茕夜-CSDN博客_python 列表切片

                  3.https://www.w3cschool.cn/python/python-func-slice.html

           本篇内容是参考链接内容总结,以备后续遗忘时查阅。

一、列表切片

切片:在Python中处理列表的部分元素,叫做切片。创建切片,可指定要使用的第一个元素和最后一个元素的索引。范围是左闭右开。

1.基本操作

从输出结果中看:

lists=[1,2,3,4,5]

print(lists[0:4])#输出第0至第3个位置的元素
结果:[1, 2, 3, 4]   

print(lists[1:5])#输出第1至第4个位置的元素
结果:[2, 3, 4, 5]

print(lists[:2])#与lists[0:2]含义相同,即省略起始索引值,表示的是从0开始
结果:[1, 2]

print(lists[2:])#省略结束索引值,表示的是到末尾结束
结果:[3, 4, 5]

print(lists[-2:])#负号表示输出列表的最后两个元素
结果:[4, 5]

注意:正索引的范围是0<=index<=len(sequece)-1;负索引的范围是-1到序列的负长度,

-len(sequence)<=index<=-1。正负索引的区别在于正索引以序列的开始为起点,负索引以序列的结束为起点。

2.切片复制列表

在使用切片复制列表时,方法是同时省略起始索引和终止索引([:])

从输出结果中学习:

lists=[1,2,3,4,5]
lists_copy=lists[:]
print(lists_copy)
结果:[1, 2, 3, 4, 5]

lists_copy.append(6)

lists.append(7)

print(lists_copy)
结果:[1, 2, 3, 4, 5, 6]

print(lists)
结果:[1, 2, 3, 4, 5, 7]

说明切片复制是深拷贝。

下面再看下list直接赋值的情况。

lists=[1,2,3,4,5]

listsc=lists

print(listsc)
结果:[1, 2, 3, 4, 5]

listsc.append(6)

lists.append(7)

print(listsc)
结果:[1, 2, 3, 4, 5, 6, 7]

print(lists)
结果:[1, 2, 3, 4, 5, 6, 7]

说明python中list直接赋值是浅拷贝(注意:c++中vector是杜绝浅拷贝的,例如vector<int> array{3,5,2,6,4}; vector<int> outArray; outArray = array;或者vector<int> outArray(array);都是深拷贝。)

3.list[::n]的含义

        步长索引来进行扩展的切片操作;它多出来的第三个索引值被用做步长参数。

        s[::-1]##可以视作翻转操作。

        s[::2]##隔一个取一个的操作。

举例:

s=[1,2,3,4,5,6]

s[::-1]
Out[4]: [6, 5, 4, 3, 2, 1]#输出结果
s[::2]
Out[5]: [1, 3, 5]

二、slice()函数切片

Python slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。

slice语法有两种:class slice(stop) 或者class slice(start, stop[, step])

其中start:起始位置;stop:结束位置;step:间距;返回一个切片对象。

>>>myslice = slice(5) # 设置截取5个元素的切片
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[myslice] # 截取 5 个元素
[0, 1, 2, 3, 4]
>>>

文中若有不妥或错误之处,还望指出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值