Очистить переменную в Python
var = None «очищает значение», устанавливая значение переменной на «null» как значение «None», однако указатель на переменную остается. del var полностью удаляет определение для переменной. Если вы хотите использовать переменную позже, например, установить новое значение для нее, то есть сохранить переменную, None будет лучше.
Поделиться 14 июня 2014 в 19:27
На самом деле, это не удаляет переменную/свойство. Все, что она сделает, это установит ее значение None , поэтому переменная все еще займет место в памяти. Если вы хотите полностью очистить все существование переменной из памяти, вы можете просто ввести:
del self.left
Поделиться 05 сентября 2015 в 21:35
- Если вы хотите полностью удалить его, используйте del :
del your_variable
your_variable = None
your_variable.clear()
Тогда ваш_переменный будет пустым
Поделиться 23 сентября 2018 в 06:07
Удалите его содержимое, установив его на None , а затем del , чтобы удалить его указатель из памяти
variable = None; del variable
Поделиться 28 июня 2021 в 13:58
Вы хотите удалить переменную, не так ли?
Хорошо, я думаю, у меня есть лучшая альтернатива ответу @bnaul:
Вы можете удалить отдельные имена с помощью del :
del x
или вы можете удалить их из объекта globals() :
for name in dir(): if not name.startswith('_'): del globals()[name]
Это всего лишь пример цикла; он защищенно удаляет только имена, которые не начинаются с подчеркивания, делая (не необоснованное) предположение, что вы использовали только имена без подчеркивания в начале вашего интерпретатора. Вы можете использовать жестко закодированный список имен, чтобы сохранить его вместо этого (белый список), если вы действительно хотите быть основательными. Нет встроенной функции, которая могла бы сделать очистку для вас, кроме как просто выйти и перезапустить интерпретатор.
Модули, которые вы импортировали (например, import os ), останутся импортированными, потому что они ссылаются на sys.modules ; последующие импорты будут использовать уже импортированный объект модуля повторно. У вас просто не будет ссылки на них в вашем текущем глобальном пространстве имен.
Как удалить переменную в python
del от delete (англ.) — удалить.
del name
del name[i]
del name[i:j:k]
del name.attribute
На заметку
В первой форме name — это имя переменной, взятое буквально. В последних трех формах name может являться выражением.
- Удаление нескольких целей рекурсивно удаляет каждую цель слева направо.
- Удаление имени удаляет привязку этого имени из локального или глобального пространства имен (в зависимости от того, были ли определено имя при помощи инструкции global в том же блоке кода). Если имя не привязано, возбуждается исключение NameError.
- Удаление ссылок на атрибуты, элементов и срезов передаётся базовому объекту (носителю) и осуществляется им. Удаление среза, в целом, эквивалентно присвоению пустого среза (однако и оно определяется самим объектом среза).
| del variable | удаление переменной |
| del obj.attr | удаление атрибута |
| del data[k] | удаление элемента по индексу |
| del data[i:j] | удаление элементов по срезу |
my_list = [123, 'spam', 1.23, 'NI']
del my_list[2]
my_list # [123, 'spam', 'NI']
another_list = ['abc', my_list, 42]
del another_list[1][2] # удаляем ‘NI’ из вложенного списка my_list
my_list # [123, 'spam']
list_one = ['spam', 1, 11, 111]
list_two = [2, 22, 'spam', 222]
list_three = [3, 'spam', 33, 333]
del list_one[0], list_two[2], list_three[1] # удаляем spam одновременно из трёх списков
+py3.2: Разрешено удаление имени из локального пространства имён, если оно используется во вложенном блоке как несвязанное (не было определено в рамках того же блока). Ранее в таких случаях возбуждалось SyntaxError:
def print_done():
some = 'some'
del some
# До Python 3.2 в подобных случаях инструкция вызывает SyntaxError:
# can not delete variable 'some' referenced in nested scope
def print_some():
print(some)
print('done')
print_done()
Списки в Python
Здесь мы сохранили 2 переменные, в которых лежат названия фруктов. Но фруктов очень много. Что, если нам нужно работать с сотней таких записей? Например, если у вас интернет-магазин фруктов, придётся хранить очень много фруктов. Не создавать же сотню переменных…
Для таких задач есть списки:
fruits = ["Яблоко", "Банан", "Персик"]
Список — это как бы способ сохранить много штук (строк, чисел и т.д.) в одной переменной. В этом случае в переменной fruits лежит сразу 3 строки: «Яблоко» , «Банан» и «Персик» .
Теперь, чтобы получить одну из строк в списке — нужно обратиться к ней по индексу. Нумерация в программировании идёт с нуля:
0: “Яблоко”
1: “Банан”
2: “Персик”
Чтобы получить нулевой элемент, мы пишем fruits[0] . Такой код выведет Яблоко :
apple = fruits[0] print(apple)
Как добавить элемент в список
Бывает такое, что мы хотим добавить в список что-нибудь. Например, в магазине расширился ассортимент и теперь он торгует апельсинами. Добавляет строки в список метод .append() :
new_fruit = "Апельсин" fruits.append(new_fruit) print(fruits)
Список выведется с новым фруктом: [‘Яблоко’, ‘Банан’, ‘Персик’, ‘Апельсин’] .
Как удалить элемент из списка
Допустим, вы решили перестать торговать бананами. Нужно убрать их из списка. Поможет метод .remove() :
banana = "Банан" fruits.remove(banana) print(fruits)
Список выведется без банана: [‘Яблоко’, ‘Персик’, ‘Апельсин’] .
Из списка можно удалять элементы по их индексу. Код удалит нулевой элемент списка:
del fruits[0] print(fruits)
Список выведется без яблока: [‘Персик’, ‘Апельсин’] .
Как создать пустой список
Есть такая штука, как пустой список. Это когда в списке ничего не лежит. Создаётся он так:
empty_list = []
Так же, как и список с элементами, только без них. Вот так вот просто. В будущем этот список можно наполнить методом .append() .
Что дальше
Если статья не смогла объяснить что же такое списки или вы хотите почитать о них ещё, подойдут эти статьи:
- Списки на metanit
- Списки на pythontutor
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Как удалить переменную после использования в Python?
Делаю бота на Python он должен выдать рандомные данные из переменной и удалить, ( чтобы избежать повторений) Как удалить переменную вместе с данными?
Отслеживать
задан 7 янв 2020 в 16:33
9 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
как связано удаление переменной и исключение повторений?
7 янв 2020 в 16:39
Долгая история)
10 янв 2020 в 16:47
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В первой форме name — это имя переменной, взятое буквально. В последних трех формах name может являться выражением.
Отслеживать
ответ дан 7 янв 2020 в 16:37
Vladimir Afanasyev Vladimir Afanasyev
2,354 2 2 золотых знака 8 8 серебряных знаков 23 23 бронзовых знака
Спасибо вам за ответ)
10 янв 2020 в 16:46
- python
- переменные
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973