Python列表切片

  • 切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等。可以用切片截取列表中任何部分来获得一个新的列表,也可以进行元素的增、删、改。
  • 在Python中,序列的序号即可以从左向右以0开始依次增加,也可以从右向左以 -1
    开始依次减少,因此通过的序号访问序列中的元素,同一个元素可以有两个序号。
  • 1、列表元素的访问和修改

    alist = [1, 3, 4, 5, 2]
    print(alist[0])  # 输出左边第0个位置的元素:1
    
    print(alist[3])  # 输出左边第3个位置的元素
    print((alist[-1]))  # 输出最右边的元素
    print(alist[2], alist[-2])
    
    alist[0] = 99  # 修改列表元素的值
    print(alist[0])
    print(alist)
    
    print(len(alist))
    
    1
    5
    2
    4 5
    99
    [99, 3, 4, 5, 2]
    5
    

    len()是Python的内置函数,用于获得序列中元素的个数。

    2、列表切片(重点)

    切片是为了获得序列某个区间的元素序列。切片操作通过使用两个冒号分隔3个数字来实现,

  • 第一个数字表示切片的开始位置,默认为0;
  • 第二个数字表示切片的终止位置(但不包含该位置的元素),默认为列表的长度;
  • 第三个数字为切片的步长,默认为1,当省略步长时,可以同时省略后一个冒号。
  • lie = [3, 4, 6, 7, 2, 10, 16]
    print(lie[:])  # 取全部元素
    print(lie[0:])  # 取全部元素
    
    print(lie[:-1])  # 取 除最后一个元素外的所有元素
    
    print(lie[2:5])  # 取序号为2、3、4的元素,不包含最后一个序号的元素
    
    print(lie[::2])  # 从0开始隔一个取一个元素
    
    print(lie[1:5:2])  # 从1开始,每隔一个取一个元素,直到5为止
    
    print(lie[::-1])  # 从右向左取全部成员
    
    print(lie[5:0:-2])  # 从右向左隔一个取一个元素,不包含0
    
    [3, 4, 6, 7, 2, 10, 16]
    [3, 4, 6, 7, 2, 10, 16]
    [3, 4, 6, 7, 2, 10]
    [6, 7, 2]
    [3, 6, 2, 16]
    [4, 7]
    [16, 10, 2, 7, 6, 4, 3]
    [10, 7, 4]
    
  • lie[:-1]等价于 alist [0: -1:1],-1表示最后一个位置
  • 3、切片应用

    切片可用于获得子列表,或者修改、删除列表元素。

    alist = [3, 4, 6, 7, 2, 10, 16, -8]
    alist_x = alist[1:6:2]
    print(alist_x)
    # 输出结果:[4, 7, 10]
    
    alist[1:6:2] = [28, 38, 48]  # 修改元素值
    print(alist)
    # 输出结果:[3, 28, 6, 38, 2, 48, 16, -8]
    
  • 修改元素值时要求 “ = ” 左右两侧的元素个数相同
  • del alist[3:5]  # 删除元素,删除第3、4元素,不包括第5元素
    print(alist)
    # 输出结果:[3, 28, 6, 48, 16, -8]
    
  • 字符串也可以按切片来进行操作,获取部分字符。
  • str = 'Python'
    print(str[0])
    # 输出结果:P
    print(str[-1])
    # 输出结果:n
    print(str[1:5:2])
    # 输出结果:yn
    str[0] = 'y'
    print(str)
    # 输出结果报错
    

    这里抛出异常,因为字符串是不可变序列,即不能修改其值,这里要修改就会出现错误。

    来源:若ing

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 列表切片操作

    发表评论