Python 列表切片操作

Posted 若ing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 列表切片操作相关的知识,希望对你有一定的参考价值。

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)
# 输出结果报错

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

python 第27课 列表_切片slice()操作

 

 

 

 

 

 

 

以上是关于Python 列表切片操作的主要内容,如果未能解决你的问题,请参考以下文章

python基础——列表切片操作

Python 之列表切片的四大常用操作

Python高级特性之---切片操作

Python 列表切片操作

python中列表切片操作

python 第27课 列表_切片slice()操作