Стереть весь массив Python
Как удалить целый массив, оставив его без элементов?
Я хочу сделать это, чтобы сохранить в нем новые значения (новый набор из 100 поплавков) и найти минимум.
Сейчас моя программа читает минимум из наборов, прежде чем я думаю, потому что она добавляет себя с предыдущим набором, все еще там. Я использую .append, кстати.
Ответы
Ответ 1
Обратите внимание, что list
и array
- это разные классы. Вы можете сделать:
del mylist[:]
Это фактически изменит ваш существующий список. Ответ Дэвида создает новый список и присваивает его той же переменной. Что вы хотите, зависит от ситуации (например, имеет ли какая-либо другая переменная ссылку на тот же список?).
Try:
a = [1,2]
b = a
a = []
и
a = [1,2]
b = a
del a[:]
Распечатайте a
и b
каждый раз, чтобы увидеть разницу.
Ответ 2
Это просто:
array = []
установит array
как пустой список. (Они называются списками в Python, кстати, а не массивами)
Если это не сработает для вас, отредактируйте свой вопрос, чтобы включить образец кода, который демонстрирует вашу проблему.
Ответ 3
Ну да, массивы действительно существуют, и нет, они не отличаются от списков, когда дело касается таких вещей, как 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] = expression
или arr.append(expression)
, и lvalue = arr[i]
Ответ 4
Теперь, чтобы ответить на вопрос, который, возможно, вы должны были спросить, например "Я получаю 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'))