清空整个数组 Python

47 投票
5 回答
148488 浏览
提问于 2025-04-16 02:53

我该怎么把整个数组清空,让里面没有任何东西呢?

我想这样做是为了能在里面存储新的值(比如一组新的100个浮点数),然后找出最小值。

现在我的程序在读取最小值的时候,可能会因为之前的数组还在里面而出错,因为它是用.append方法添加的。

5 个回答

9

没错,数组确实存在,而且在使用像 delappend 这些操作时,它们和列表没有什么不同:

>>> 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] = expressionarr.append(expression) 以及 lvalue = arr[i] 时,你需要花额外的时间来转换C语言的类型和Python的类型,这样虽然节省了存储空间,但会增加一些处理时间。

34

这很简单:

array = []

这段代码会把 array 设置成一个空列表。(顺便说一下,在Python里,它们叫做列表,不叫数组)

如果这样还不行,你可以修改你的问题,添加一段代码示例来展示你的问题。

60

请注意,listarray 是不同的类。你可以这样做:

del mylist[:]

这实际上会修改你现有的列表。David 的回答是创建一个新列表,并把它赋值给同一个变量。你想要哪种方式取决于具体情况(比如,是否有其他变量也指向同一个列表?)。

试试:

a = [1,2]
b = a
a = []

还有

a = [1,2]
b = a
del a[:]

每次打印 ab 来看看它们之间的区别。

撰写回答