• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
留白
世人慌慌张张,不过图碎银几两
博客园    首页    新随笔       管理    订阅  订阅
python 列表切片

列表切片是python语言独有的特征,大大方便了我们的编码。

首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数。

insert,get,set 操作均可传入负数下标

当传入的下标是负数时,python会自动的加上一个length,但只会加一次,也就是说如果这个负数超过了 - length ,那么就会报错了

list 的负数下标

1 a = [1, 2, 3, 4, 5]
2 # index = -1 + 5 = 4
3 # a[-1] == a[4]
4 print(a[-1])    # 5

当负数下标超过length

1 a = [1, 2, 3, 4, 5]
2 # index = -6 + 5 = -1
3 print(a[-6])    # IndexError: list index out of range

 

接下来是切片

list 的下标可以接收三个参数,分别是 beg (起始下标), end (结束下标) , step(步长)more,用冒号分隔

当 step > 0 :   beg 默认值是0,  end 默认值是  最末之后

当 step < 0 :  beg 默认值是length-1,  end默认值是  开头之前

当 step = 0: 报错

step 默认值是1

 1 a = [1, 2, 3, 4, 5]
 2 # step 默认值 1 ,当 step > 0,   beg 默认值 0 ,end 默认值 最末之后
 3 print(a[:])  # [1, 2, 3, 4, 5]
 4 print(a[::])  # [1, 2, 3, 4, 5]
 5 print(a[0:5:1])  # [1, 2, 3, 4, 5]
 6 print(a[0:1000:1])  # [1, 2, 3, 4, 5]
 7 
 8 # 当 step < 0,  beg 默认值 length-1 ,end 默认值 开头之前
 9 print(a[::-1])  # [5, 4, 3, 2, 1]
10 print(a[len(a) - 1:-100:-1])  # [5, 4, 3, 2, 1]

切片产生的是列表的一个副本:

1 a = [1, 2, 3, 4, 5]
2 b = a[1:]
3 print(a)  # [1, 2, 3, 4, 5]
4 print(b)  # [2, 3, 4, 5]

切片的写操作:

1 a = [1, 2, 3, 4, 5]
2 a[1:] = ['a']
3 print(a)  # [1, 'a']

 

 

end

 

posted on 2018-07-27 11:56  留白s  阅读(3687)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3