文章目录 列表分片用法一:打印列表元素分片 列表分片用法二:给列表元素赋值,可一次赋值多个元素 列表分片用法三:不替换原有元素情况下加入新元素
文章目录
- 列表分片用法一:打印列表元素分片
- 列表分片用法二:给列表元素赋值,可一次赋值多个元素
- 列表分片用法三:不替换原有元素情况下加入新元素
- 列表分片用法四:删除元素
- 参考链接
列表分片用法一:打印列表元素分片
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
参考链接