2010-08-17 69 views
24

如何擦除整个数组,使其没有项目?擦除整个数组Python

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

现在我的程序正在读取集合中的最小值,因为它之前的集合仍在那里。顺便说一句,我使用.append。

回答

38

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

del mylist[:] 

这实际上将修改现有的名单。 David的答案创建了一个新列表并将其分配给相同的变量。你想要什么取决于情况(例如,其他变量是否有对同一个列表的引用?)。

尝试:

​​

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

打印a和每次看到其中的差别b

+0

+1嘿,我们写的几乎一模一样,但ÿ你是第一个。 – 2010-08-17 04:09:52

+0

真的,Python中有数组?我不知道。 (其实我可能知道但忘了)无论如何+1扩大了我们的答案之间的差异。我只是猜测这个差别对于OP来说并不重要。 – 2010-08-17 04:12:26

+0

我明白了。这有助于帮助 @david:对,对我来说没有太大的区别。但是我的新鲜度已经下降:P – pjehyun 2010-08-17 04:13:59

18

很简单:

array = [] 

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

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

+0

哇哈哈感谢 – pjehyun 2010-08-17 04:04:02

3

嗯,是确实存在的阵列,而当它涉及到的东西像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]) 
>>> 

差异值得注意的是:你需要指定类型创建阵列时和你节省存储在加时赛C类,当你做arr[i] = expressionarr.append(expression),并lvalue = arr[i]

1

现在来回答这个问题,也许你应该问Python类型之间转换的费用​​,如“我获得100 f大form形成某处;我需要把它们放在一个数组或列表之前,我找到最低”

吗?答:不,如果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'))