python如何清空数组

Python09

python如何清空数组,第1张

几种操作方式,效率差不多:

In [4]: %timeit l=range(10000)l=[]

10000 loops, best of 3: 115 �0�8s per loop

In [5]: %timeit l=range(10000)del l[:]

10000 loops, best of 3: 107 �0�8s per loop

In [6]: %timeit l=range(10000)l=None

10000 loops, best of 3: 114 �0�8s per loop

所以从性能上来看,这几种删除方式都可以。

从功能上来讲,有一点区别:

1. l=[]和l=None是给l赋一个新的值,不影响原来数组的内容

In [1]: l=range(5)

In [2]: l2=l

In [3]: l2=None

In [4]: l

Out[4]: [0, 1, 2, 3, 4]

2. del l[:]则是删除了原数组的所有元素

In [5]: l2=l

In [6]: del l2[:]

In [7]: l

Out[7]: []

使用filter来实现,以python3为例,如果删除列表中的所有0,则可使用下面代码实现:

a = [1,2,0,3,4,0,5,0,6]

b = filter(lambda x: x != 0, a)

list(b)

效果如下:

注:如果使用python2则直接输出b即可,在python3中filter返回结果为可迭代的对象,需使用list转换成列表。