python3_切片操作

1.定义

切片适用于列表、元组、字符串、range对象等类型,但作用于列表时功能最为强大。可以截取列表中任何部分、修改和删除列表中元素,甚至还可以为列表增加元素。

2.形式

对象[num1: num2: num3]

num1: 切片起始位置(默认num1=0)

num2: 切片截止位置

num3: 切片步长(默认为1),若步长省略,最后一个冒号也可省略

3.注意事项

①索引有正索引(0, 1, 3, ...)和负索引(-1, -2, ...)

②步长为-1时表示逆序输出

③切片操作不会因为下标越界抛出异常,而是简单的在列表尾部截断或者返回一个空列表,代码具有更强的健壮性

④切片产生的时一个新对象(列表),而不是原来列表对应内存空间的引用

⑤切片截止位置num2并不包含在截取的元素中

⑥切片返回的是列表元素的浅复制

4.代码示例

# coding:utf-8
# python Interpreter: 3.6.5
# author: admain_maxin
# 切片操作
alist = [1, 2, 1, 2, 1, 1, 1]
for i in alist[::]:
    if 1 == i:
        alist.remove(i)
print(alist)


blist = [1, 2, 1, 2, 1, 1, 1]
for j in range(len(blist)-1, -1, -1): # 从后往前删除
    if blist[i] == 1:
        del blist[i]

print(blist)


# 切片示例
# 1.截取列表内容
a_l = [3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
print(a_l[::1])  # 1.返回包含所有元素的新列表
print(a_l[::-1])  # 2.逆序所有元素
print(a_l[::2])  # 3.偶数位置,隔一个取一个
print(a_l[1::2])  # 4.奇数位置,隔一个取一个
print(a_l[3::])  # 5.输出下标3开始的所有元素
print(a_l[3:6])  # 6.下标[3, 6)之间的所有元素
print(a_l[100:])  # 7.返回空列表
# print(a_l[100])  # 8.直接下标访问会越界

# 2.原地修改列表内容
b_l = [3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
print(len(b_l))
b_l[len(b_l):] = [1111]  # 9.在尾部追加元素
print(b_l)
b_l[:3] = [2222, 2222, 2222]  # 10.替换前3个元素
print(b_l)
b_l[:3] = []  # 11.删除前3个元素
print(b_l)
b_l[::2] = [3]*4  # 12.替换偶数位置上的元素为3(两个元素个数必须一样多)
print(b_l)

# 3.使用del与切片结合来删除列表元素
c_l = [3, 5, 7, 9, 11, 13, 15, 17, 19]
del c_l[:3]  # 13.删除前三个元素
print(c_l)
del c_l[::2]  # 14.删除偶数位置上的元素
print(c_l)






  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博士僧小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值