Python切片规则,python 切片用法
从字面上可以了解到python切片,肯定是和分段有关的。如何使用?有朋友脑子里有印象吗?话不多说,让边肖给你看一个最简单的案例,教你快速上手,赶紧了解一下吧~
Python的list还有另外一种用法,可以通过索引值一次获取多个元素。这叫列表切片,就是从原列表中切片出一部分,但原列表不变。
示例图片:
从执行结果可以看出,mynames的数据副本中索引为1和2的元素,即Jack、Rose和names [1:3]是拆分列表名称中索引为1和2的元素,但不包含索引为3的元素。
我们来看一组代码:
``蟒蛇皮
#以李=[1,2,3,4,5,6,7,8,9,10]为例。
```1.当所需要的的元素是某单个元素时
``蟒蛇皮
打印(李[1])
#2
打印(李[9])
#10
打印(李[-5])
#6
#如前所述,当我们需要从列表中获取一个值时,我们可以使用它的索引来获取它。
```2.当所需要将列表进行倒置时
``蟒蛇皮
打印(李:-1)
#[10,9,8,7,6,5,4,3,2,1]
```
xt-indent:0;text-align:justify;text-justify:inter-ideograph">3.当起始索引和结束索引都为正的时候
```pythonprint(li[1:5])
#[2,3,4,5]
#步长为空默认为1从左往右取值起始索引1到结束索引5同样表示的是从左往右取值
print(li[8:2])
#[]
"""
没有错就是空列表,步长省略表示默认为1,从左往右取值,但是起始索引和结束索引同为正,却是从8到2表示从右往左取值,所以为空
"""
print(li[1:5:-1])
#[]
"""
同样是空列表,因为当步长为-1表示从右往左取值,而起始索引和结束索引则都为正表示从左往右取值,两者矛盾取不到值
"""
print(li[:5:-1])
#[10,9,8,7]
"""
步长为-1,表示从右往左取值,而起始索引没有写表示从起始开始,而因为是是从右往左取值,所以这个起始位置就是10,及索引为9到索引为5(不包括5)之间的元素
"""
```
4.当起始索引和结束索引都为负的时候
```pythonprint(li[-1:-7])
#[]
"""
步长默认为1,从左往右取值,而起始索引-1到结束索引-6决定了从右往左取值,两者矛盾,所以为空。
索引-1在-6的右边
"""
print(li[-5::-1])
#[6,5,4,3,2,1]
#步长为-1,从右往左取值,从起始索引-5开始,一直取到“起点”。
```
5.起始索引和结束索引正(+)负(-)混合索引的情况
```pythonprint(li[1:-7:-1])
#[]
'''
起始索引1在结束索引-7的左边,因此从左往右取值,但步长为-1则决定了从右往左取值,两者矛盾,因此为空。
'''
print(li[-1:7:-1])
#[10,9]
#起始索引-1在结束索引7的右边,因此从右往左取值,而步长-1同样决定了从右往左取值,因此结果正确
```
6.多层列表切片
```pythonprint(li[:9][3:7][-1:])
#[7]
"""
相当于:
li[:9]=[1,2,3,4,5,6,7,8,9]
li[:9][3:7]=[4,5,6,7]
li[:9][3:7][-1:]=[7]
理论上是可以的进行多层切片,只要上一次的切片结果不为空
"""
```
7.取奇偶数
```python#我们可以通过切片来进行取出li中的奇数和偶数
#奇数
print(li[::2])
#[1,3,5,7,9]
print(li[1::2])
#[2,4,6,8,10]
8.替换一部分值
```pythonlip[2:6]=[6,6,6,6]
print(li)
#[1,2,6,6,6,6,7,8,9,10]
```
总结:
列表切片的方向取决于起始索引、结束索引以及步长,当起始索引在结束索引右边是就是从右往左取值,同理反之。
当列表通过索引取单个元素时返回的是这个元素而非一个列表,当取连续的几个值时返回的是一个列表。
如需了解更多python实用知识,点击进入PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。