如何删除整个数组,不留任何项目?
我想这样做,所以我可以在其中存储新值(一组新的100个浮点数)并找到最小值。
现在我的程序正在考虑之前从集合中读取最小值,因为它正在追加自己的前一个集合。我顺便使用.append。
答案 0 :(得分:48)
请注意,list
和array
是不同的类。你可以这样做:
del mylist[:]
这实际上会修改您现有的列表。 David的回答创建了一个新列表并将其分配给同一个变量。你想要的取决于具体情况(例如,任何其他变量是否都引用了相同的列表?)。
尝试:
a = [1,2]
b = a
a = []
和
a = [1,2]
b = a
del a[:]
每次打印a
和b
以查看差异。
答案 1 :(得分:27)
很简单:
array = []
将array
设置为空列表。 (顺便说一下,它们在Python中称为列表,而不是数组)
如果这不适合您,请编辑您的问题以包含演示您问题的代码示例。
答案 2 :(得分:5)
确实存在数组,并且当涉及到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
或{{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'))