Стереть весь массив Python

Как стереть весь массив, не оставляя элементов?

Я хочу сделать это, чтобы сохранить в нем новые значения (новый набор из 100 плавает) и найдите минимум.

Прямо сейчас моя программа читает минимум из наборов, прежде чем я думаю, потому что она добавляет себя с предыдущим набором, все еще там. Я использую .append, кстати.

40
задан Michael Currie 10 September 2015 в 22:36
поделиться

4 ответа

Обратите внимание, что list и array - это разные классы. Вы можете сделать:

del mylist[:]

Это фактически изменит ваш существующий список. Ответ Дэвида создает новый список и присваивает его той же переменной. Что вы хотите, зависит от ситуации (например, имеет ли какая-либо другая переменная ссылку на тот же список?).

Попробуйте:

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

и

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

Выведите a и b каждый раз, чтобы увидеть разницу.

50
ответ дан 27 November 2019 в 01:28
поделиться

Да, массивы существуют, и нет, они не отличаются от списков, когда дело доходит до таких вещей, как 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]

5
ответ дан 27 November 2019 в 01:28
поделиться

Это просто:

array = []

установит array как пустой список. (Между прочим, в Python они называются списками, а не массивами)

Если это не сработает для вас, отредактируйте свой вопрос, включив в него образец кода, демонстрирующий вашу проблему.

29
ответ дан 27 November 2019 в 01:28
поделиться

Теперь, чтобы ответить на вопрос, который, возможно, вам следовало задать, например: «Я где-то получаю 100 чисел с плавающей запятой; нужно ли мне помещать их в массив или список, прежде чем я найду минимум?»

Ответ: Нет , если где-то повторяется, вместо этого:

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

вы можете сделать это:

answer = min(somewhere)

Пример:

answer = min(float(line) for line in open('floats.txt'))
1
ответ дан 27 November 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: