• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python列表切片规则是什么?怎么做?

python 搞java代码 3年前 (2022-05-21) 25次浏览 已收录 0个评论

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

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]为例
```
www#gaodaima.com来源gaodai.ma#com搞#代!码网搞代码

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教程网

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python列表切片规则是什么?怎么做?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址