创新互联Python教程:python列表切片规则是什么?怎么做?

从字面我们可以了解到关于python切片,肯定是和分割有关系,那具体是怎么使用的呢?有没有小伙伴在脑海中有个印象?话不多说,还是由小编给大家展示下最简单的案例,教大家快速上手,赶紧来了解下呀~

成都创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为定陶企业提供专业的网站建设、成都网站建设定陶网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

Python的列表还有一种用法通过索引值可以一次获取多个元素,这种叫做列表分片(slicing),分片就是从原有的列表中切分一部分下来,但是原来的列表保持不变。

示例图片:

从执行结果中我们可以看到mynames的数据拷贝的names的index为1和2的元素即Jack,Rose,names[1:3]就是切分列表names中的index为1和2的元素,但是不包含index为3的元素

我们来看一组代码:

```python
# 以li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]为例
```

1. 当所需要的的元素是某单个元素时

```python
print(li[1])
# 2
print(li[9])
# 10
print(li[-5])
# 6
# 前面已经说过了,当我们需要取出列表中某一个值的时候就可以使用它的索引来进行取出
```

2. 当所需要将列表进行倒置时

```python
print(li[::-1])
# [10,9,8,7,6,5,4,3,2,1]
```

3. 当起始索引和结束索引都为正的时候

```python
print(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. 当起始索引和结束索引都为负的时候

```python
print(li[-1:-7])
# []
"""
步长默认为1,从左往右取值,而起始索引-1到结束索引-6决定了从右往左取值,两者矛盾,所以为空。
索引-1在-6的右边
"""
print(li[-5::-1])
# [6, 5, 4, 3, 2, 1]
# 步长为-1,从右往左取值,从起始索引-5开始,一直取到“起点”。
```

5. 起始索引和结束索引正(+)负(-)混合索引的情况

```python
print(li[1:-7:-1])
#  []
'''
起始索引1在结束索引-7的左边,因此从左往右取值,但步长为-1则决定了从右往左取值,两者矛盾,因此为空。
'''
print(li[-1:7:-1])
# [10, 9]
# 起始索引-1在结束索引7的右边,因此从右往左取值,而步长-1同样决定了从右往左取值,因此结果正确
```

6. 多层列表切片

```python
print(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. 替换一部分值

```python
lip[2:6] = [6,6,6,6]
print(li)
# [1, 2, 6, 6, 6, 6, 7, 8, 9, 10]
```

总结:

列表切片的方向取决于起始索引、结束索引以及步长,当起始索引在结束索引右边是就是从右往左取值,同理反之。

当列表通过索引取单个元素时返回的是这个元素而非一个列表,当取连续的几个值时返回的是一个列表。

如需了解更多python实用知识,点击进入PyThon学习网教学中心。

网页名称:创新互联Python教程:python列表切片规则是什么?怎么做?
本文地址:http://www.shufengxianlan.com/qtweb/news4/276404.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联