切片取值
切片取值
alist=[1,2,3,4,5,6,7,8,9]
print(alist[::]) #打印全部
print(alist[:]) #打印全部
print(alist[3::2]) #起始位置为3,截至位置为默认列表长度,步长为2,
#打印出来我猜不错的话应该是取的奇数位置。
print(alist[1:4]) #取列表位置 1 到4 (记住列表位置是从0开始)
print(alist[::-1]) # 这个要注意了, 这个比较高级 是对列表进行反转,简单吧
print(alist[1:100]) # 如果 截至位置大于列表长度取列表的长度。
print(alist[100:]) # 如果 起始位置大于列表长度取值为空
注意以上的操作都是会新增一个列表不会修改列表
修改切片的列表
alist=[1,2,3,4,5,6,7,8,9]
print(len(alist))
print(alist[0])
alist[len(alist):]=[10] #在尾部增加列表
alist[:0]=[0] #在开始位置前增加列表
alist[2:2]=[100] #在3位置插入列表
---------------------------------------------------------------------------------------------------------------------------
(当我们打印 print[2:2] 一定为空 ,这个大部分人可能都不大清楚我来解释下 )
alist=[1,2,3,4,5,6,7,8,9]
print(alist[3:4])
#打印的结果为 [4]
#解释下3 是指起始位置坐标为3由于坐标开始是0,所以应该取的是[4]
#4 的意思是指起始位置到截至的长度为4 ,他是从1开始的,所以取的也是[4]
#同理我们要打印
print(alist[3,3])
#是找不到值的
#解释下第一个3 是指起始位置坐标为3由于坐标开始是0,所以应该取的是[4]
#第二个3 的意思是指起始位置到截至的长度为4 ,他是从1开始的,所以取的也是[3], 当打印 alist[3,3] 起始和截至不匹配所以取不到值
#但是我们可以拿这个alist[3:3]进行赋值,意思就是在起始3位置插入列表 ,就像alist[:0] 在开始位置新增值一样。
--------------------------————————————————————————————————
alist[:8]=[12] #初始位置到7 都变成【12】
print(alist)
alist[2:]=[13] #从第三个位置到结尾 变成【13】
--------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]
alist[::2]=[0]*5 #隔一个进行修改,
print(alist)
[0, 2, 0, 4, 0, 6, 0, 8, 0]
注意要修改的数量要和右边的等号相等 如果不等就报错
alist=[1,2,3,4,5,6,7,8,9]
alist[::2]=[0]*4
print(alist)
#ValueError: attempt to assign sequence of size 4 to extended slice of size 5
-------------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]
alist[:3]=[] #删除前三个元素
print(alist)
del alist[:3] #用del 删除前三个
print(alist)
-------------------------------------------------------------------------------------------------------------------------------------------
alist=[1,2,3,4,5,6,7,8,9]
del alist[::2]
print(alist) #奇数位置都要删除
[2, 4, 6, 8]
---------------------