擦除整个数组Python

时间:2010-08-17 04:01:31

标签: python arrays erase

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

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

现在我的程序正在考虑之前从集合中读取最小值,因为它正在追加自己的前一个集合。我顺便使用.append。

4 个答案:

答案 0 :(得分:48)

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

del mylist[:]

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

尝试:

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

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

每次打印ab以查看差异。

答案 1 :(得分:27)

很简单:

array = []

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

如果这不适合您,请编辑您的问题以包含演示您问题的代码示例。

答案 2 :(得分:5)

确实存在数组,并且当涉及到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] = expression或{{1}时以牺牲在C类型和Python类型之间转换的额外时间为代价来节省存储空间}和arr.append(expression)

答案 3 :(得分: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'))