45

如何擦除整个数组,不留下任何项目?

我想这样做,以便可以在其中存储新值(一组新的 100 个浮点数)并找到最小值。

现在我的程序在我想之前从集合中读取最小值,因为它正在将前一个集合附加在其中。顺便说一句,我使用 .append。

4

4 回答 4

56

注意listarray是不同的类。你可以做:

del mylist[:]

这实际上会修改您现有的列表。大卫的回答创建了一个新列表并将其分配给同一个变量。您想要哪个取决于具体情况(例如,是否有任何其他变量引用了同一个列表?)。

尝试:

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

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

打印ab每次看区别。

于 2010-08-17T04:03:08.187 回答
34

这很简单:

array = []

将设置array为空列表。(顺便说一下,它们在 Python 中称为列表,而不是数组)

如果这对您不起作用,请编辑您的问题以包含演示您的问题的代码示例。

于 2010-08-17T04:02:28.997 回答
7

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])
>>>

需要注意的区别:创建数组时需要指定类型,这样做会节省存储空间,但会花费额外的时间在 C 类型和 Python 类型之间进行转换arr[i] = expressionarr.append(expression)并且lvalue = arr[i]

于 2010-08-17T05:32:17.417 回答
1

现在回答也许您应该问的问题,例如“我在某处得到 100 个浮点数;在找到最小值之前,我需要将它们放入数组或列表中吗?”

答:不,如果somewhere是可迭代的,而不是这样做:

temp = []
for x in somewhere:
   temp.append(x)
answer = min(temp)

你可以这样做:

answer = min(somewhere)

例子:

answer = min(float(line) for line in open('floats.txt'))
于 2010-08-17T05:46:22.763 回答