切片:
[start_index: stop_index: step]
start_index: stop_index 参数都可以省略 默认 全部 但必须有一个 :
demo:
start_index和stop_index的绝对值是可以大于length的。比如下面两个例子:?
1 2 3 4 5 |
>>> alist = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> alist[ - 11 : 11 ]
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> alist[ 11 : - 11 : - 1 ]
[ 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 ]
|
另外start_index和stop_index都是可以省略的,比如这样的形式 alist[:]
, 被省略的默认由其对应左右边界起始元素开始截取。
看一下具体的实例:?
1 2 3 |
>>> alist = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> alist[:]
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
|
函数默认参数: 陷阱
def qqxing(k,l = {}):
# l.append(1)
l[k] = 'v'
print(l)
qqxing(1) #[1]
qqxing(2) #[1,1]
qqxing(3) #[1,1,1]
# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就公用这个数据类型的资源
def func(l):
return l[1::2] #切片 从 第一个, 从1 开始 不是 0 2 4
print(func([1,2,3,4,5]))
def func(l):
return l[:2]
print(func([1,2,3,4]))