Python中slice操作

Python中slice操作

我们已知python中列表,数组等都支持切片操作。
切片操作基本表达式:
object[start_index : end_index : step]
重要步骤

  1. 首先我们观察step正负,如果为正从前往后,如果为负从后往前。
    如果step > 0:
    如果start_index < end_index 正常输出
    如果 step < 0:
    如果start_index > end_index 正常输出
  2. 如果没有具体给出step,默认为1
  3. 有时候不仅仅没有给出step,start_index 或者end_index 也仅仅给出一个
    如果step > 0:
    如果start_index 给出:end_index 默认是最大
    如果end_index 给出:start_index 默认是最小
    如果step < 0:
    如果start_index 给出:end_index 默认是最小
    如果end_index 给出:start_index 默认是最大
#!/usr/bin/env python
# coding: utf-8

# In[4]:


a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


# In[2]:


print(a[:])         # 从左往右
print(a[: :])       # 从左往右
print(a[: : -1])    # 从右往左
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# In[3]:


print(a[1:5:-1]) 
# step=-1,决定了从右往左取值,而start_index=1到end_index=5决定了从左往右取值,互相矛盾。
[]

# In[4]:


print(a[:5] )   
# step=1,从左往右取值,从“起点”开始一直取到end_index=5。
[0, 1, 2, 3, 4]

# In[5]:


print(a[:5:-1]) 
# step=-1,从右往左取值,从“终点”开始一直取到end_index=5。
[9, 8, 7, 6]

# In[6]:


print(a[5:])
[5, 6, 7, 8, 9]

# In[7]:


print(a[5::-1] )
[5, 4, 3, 2, 1, 0]

# In[8]:


print(a[-1:-5]) 
# step=1,从左往右取值,而start_index=-1到end_index=-5决定了从右往左取值,两者矛盾。
print(a[-1:-5:-1]) 
# step=-1,从右往左取值,start_index=-1到end_index=-5同样是从右往左取值。
[]
[9, 8, 7, 6]

# In[9]:

print(a[5:]) 
# step=1,从左往右取值,从start_index=5开始,一直取到“终点”。
print(a[5::-1] )
# step=-1,从右往左取值,从start_index=5开始,一直取到“起点”。
[5, 6, 7, 8, 9]
[5, 4, 3, 2, 1, 0]

# In[1]:


for i in range(1,100)[2::3][-10:]:
    print(i, end=' ')
    #利用range函数生成1-99的整数,然后取3的倍数,再取最后十个。
72 75 78 81 84 87 90 93 96 99 

# In[2]:


for i in range(1,100)[2::3][:10]:
    print(i, end=' ')
    #同样是取3的倍数,不过是取前十个。
3 6 9 12 15 18 21 24 27 30 

# In[5]:


a[3:3] = ['A','B','C']
print(a)
[0, 1, 2, 'A', 'B', 'C', 3, 4, 5, 6, 7, 8, 9]

# In[6]:


a[3] = ['A','B']
print(a)
[0, 1, 2, ['A', 'B'], 'B', 'C', 3, 4, 5, 6, 7, 8, 9]

# In[7]:


print(a[:])
#将上面替换后的输出复制
[0, 1, 2, ['A', 'B'], 'B', 'C', 3, 4, 5, 6, 7, 8, 9]

# In[8]:


# 1.取偶数位置
print(a[::2])
# 2.取奇数位置
print(a[1::2])
[0, 2, 'B', 3, 5, 7, 9]
[1, ['A', 'B'], 'C', 4, 6, 8]

# In[9]:


myslce = slice(5)


# In[10]:


myslce
slice(None, 5, None)

# In[13]:


a[myslce]
[0, 1, 2, ['A', 'B'], 'B']

# In[12]:


a


# In[14]:


a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


# In[15]:


a[myslce]
[0, 1, 2, 3, 4]

# In[ ]:





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值