清空整个数组 Python
我该怎么把整个数组清空,让里面没有任何东西呢?
我想这样做是为了能在里面存储新的值(比如一组新的100个浮点数),然后找出最小值。
现在我的程序在读取最小值的时候,可能会因为之前的数组还在里面而出错,因为它是用.append方法添加的。
5 个回答
9
没错,数组确实存在,而且在使用像 del
和 append
这些操作时,它们和列表没有什么不同:
>>> from array import array
>>> foo = array('i', range(5))
>>> foo
array('i', [0, 1, 2, 3, 4])
>>> del foo[:]
>>> foo
array('i')
>>> foo.append(42)
>>> foo
array('i', [42])
>>>
不过有几个值得注意的区别:创建数组时你需要指定数据类型,而且在使用 arr[i] = expression
或 arr.append(expression)
以及 lvalue = arr[i]
时,你需要花额外的时间来转换C语言的类型和Python的类型,这样虽然节省了存储空间,但会增加一些处理时间。
34
这很简单:
array = []
这段代码会把 array
设置成一个空列表。(顺便说一下,在Python里,它们叫做列表,不叫数组)
如果这样还不行,你可以修改你的问题,添加一段代码示例来展示你的问题。
60
请注意,list
和 array
是不同的类。你可以这样做:
del mylist[:]
这实际上会修改你现有的列表。David 的回答是创建一个新列表,并把它赋值给同一个变量。你想要哪种方式取决于具体情况(比如,是否有其他变量也指向同一个列表?)。
试试:
a = [1,2]
b = a
a = []
还有
a = [1,2]
b = a
del a[:]
每次打印 a
和 b
来看看它们之间的区别。