当前位置 : 主页 > 编程语言 > python >

【Python】列表(list)分片的扩展用法

来源:互联网 收集:自由互联 发布时间:2022-06-24
文章目录 ​​列表分片用法一:打印列表元素分片​​ ​​列表分片用法二:给列表元素赋值,可一次赋值多个元素​​ ​​列表分片用法三:不替换原有元素情况下加入新元素​​


文章目录

  • ​​列表分片用法一:打印列表元素分片​​
  • ​​列表分片用法二:给列表元素赋值,可一次赋值多个元素​​
  • ​​列表分片用法三:不替换原有元素情况下加入新元素​​
  • ​​列表分片用法四:删除元素​​
  • ​​参考链接​​

列表分片用法一:打印列表元素分片

li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(li[2:4]) # [2, 3] 分片结果

分片格式​​列表名[起始索引:结束索引]​​ 若是print分片结果,元素包含起始索引,而不包含结束索引

列表分片用法二:给列表元素赋值,可一次赋值多个元素

示例一:

l = list("0123456789")
print(l) #['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
l[6:] = list("abcdef")
print(l) #['0', '1', '2', '3', '4', '5', 'a', 'b', 'c', 'd', 'e', 'f']
l[5:8] = ["g"] #将列表中索引为5到7元素赋值,索引5元素(原值5)赋值为g,索引6和索引7(原值a,b)元素删除
print(l) #['0', '1', '2', '3', '4', 'g', 'c', 'd', 'e', 'f']

示例二:

li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li[1:4] = 1, # [0, 1, 4, 5, 6, 7, 8, 9]
li[1:4] = "13456", # [0, '13456', 4, 5, 6, 7, 8, 9]
li[1:4] = "13456" # [0, '1', '3', '4', '5', '6', 4, 5, 6, 7, 8, 9]
li[1:4] = "as" # [0, 'a', 's', 4, 5, 6, 7, 8, 9]
li[1:4] = 1 # TypeError: can only assign an iterable
li[1:4:2] = 1, 2 # [0, 1, 2, 2, 4, 5, 6, 7, 8, 9]
li[1:4:2] = 1, # ValueError: attempt to assign sequence of size 1 to extended slice of size 2
li[1:4:2] = "123" # ValueError: attempt to assign sequence of size 3 to extended slice of size 2
li[1:4:2] = "as" # [0, 'a', 2, 's', 4, 5, 6, 7, 8, 9]
li[1:4:2] = "asd" # ValueError: attempt to assign sequence of size 3 to extended slice of size 2

print(li)

总结:切片的只能放迭代类型的数据
   带步长的必须可丁可卯的,一个位置一个数据

示例三:

>>> l = list("123456789")
>>> l[2::2] = list("hi")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 2 to extended slice of size 4
>>> l[2::2] = list("abcd")
>>> l
['1', '2', 'a', '4', 'b', '6', 'c', '8', 'd']

还是一样,带步长必须填满数据,空位不能有多余或者不足

列表分片用法三:不替换原有元素情况下加入新元素

>>> l = list("abcd")
>>> l
['a', 'b', 'c', 'd']
>>> l[2:2] = list("12") #若是直接print(l[2:2]),结果是[]; 若是给l[2:2]赋值,则是在索引2处插入新元素
>>> l
['a', 'b', '1', '2', 'c', 'd']

列表分片用法四:删除元素

l = list("world")
l[2:-1] = [] # 等效于del l[2:-1] , 若是l[2:-3] = [] 则不删除任何元素
print(l) # ['w', 'o', 'd']
res=''.join(l)
print(res) # wod

参考链接



网友评论