Рубрики
Без рубрики

Ключевое слово Python del [С Примерами]

Основная цель Python dev – удалить объекты в программировании python. Здесь объектом могут быть переменные, списки или части списка.

Автор оригинала: Team Python Pool.

Ключевое слово Python del [С Примерами]

Все в Python является объектом, и почти все имеет атрибуты и методы. Таким образом, основная цель Python dev-удалить объекты на языке программирования python. Здесь объектом могут быть переменные, списки или части списка и т. Д.

Каждый объект является любым типом объекта Python. Обычно это переменные, но они могут быть функциями, модулями, классами.

Оператор del работает путем развязывания имени, удаляя его из набора имен, известных интерпретатору Python. Если эта переменная была последней оставшейся ссылкой на объект, то объект будет удален из памяти. Если, с другой стороны, другие переменные все еще ссылаются на этот объект, объект не будет удален.

Как удалить или удалить элемент в Python

Существует 3 различных способа удаления или удаления элементов в Python.

  1. удалить
  2. дель
  3. хлопок

Но в этом уроке мы узнаем о работе Python del.

Что такое Python del?

Python del обычно используется для удаления переменной из локального или глобального пространства имен. Это используется для восстановления памяти из данных, которые больше не нужны.

Синтаксис Python dev

del obj_name

Здесь del – это ключевое слово Python. Кроме того, obj_name может быть переменными, определяемыми пользователем объектами, списками, элементами в списках, словарями и т. Д.

Возвращаемое значение Python dev

Оператор Python dev ничего не возвращает.

Момент, Который Следует Отметить

Оператор del можно использовать для удаления элемента из списка, ссылаясь на его индекс, а не на его значение.

Теперь давайте перейдем непосредственно к примерам и проверим работу Python del statement.

Примеры инструкций Python dev

Давайте рассмотрим несколько примеров оператора del и попробуем удалить некоторые объекты.

Пример 1: Удаление переменной

Выход:

  File "c:/Users/Karan/Desktop/test.py", line 5, in 
    print(var)
NameError: name 'var' is not defined

Здесь вывод вышеприведенного примера “var” не определен. В этом примере мы получаем ошибку, потому что оператор Python del удаляет переменную. И теперь в памяти нет переменной с именем var .

Пример 2: Удаление первого элемента в списке

list = ["Learn", "Python", "Pool"]

del list[0]

print(list)

Выход:

['Python', 'Pool']

Объяснение:

В приведенном выше примере сначала мы создали наш список с именем list. Приведенный выше список содержит три элемента ( learn, python, pool ). После этого мы удалили первый элемент списка с помощью оператора del list[0]. Затем мы распечатали список после удаления первого элемента списка.

Пример 3: Удаление последнего элемента в списке

list = ["Learn", "Python", "Pool"]

del list[-1]

print(list)

Выход:

['Learn', 'Python']

Объяснение:

В приведенном выше примере сначала мы создали наш список с именем list. Приведенный выше список содержит три элемента ( learn, python, pool ). После этого мы удалили последний элемент списка с помощью оператора del list[-1]. Затем мы распечатали список после удаления последнего элемента списка.

Пример 4: Удаление пользовательского объекта

Python Программа для удаления объекта класса с помощью Python del.

# Python Program to Delete a class's object

# defining a class
class student:
   
   

# declaring object to the student class()

# printing values
print("Name: ", std.name)
print("Age: ", std.age)

# deleting the object 
del std

# printing values - will generate NameError
print("Name: ", std.name)
print("Age: ", std.age)

Выход:

Name:  Karan
Age:  22
Traceback (most recent call last):
  File "c:/Users/Karan/Desktop/test.py", line 19, in 
    print("Name: ", std.name)
NameError: name 'std' is not defined

В приведенном выше примере мы удалили объект std с помощью del std. Впервые мы получаем желаемый результат. Это происходит потому, что мы не использовали ключевое слово del. Но после использования del std в нашем объекте. Мы получили ошибку имени, так как объект удален из памяти.

Пример 5: Удаление всех элементов в диапазоне

# initializing list  
lis = [16, 1, 34, 15, 904, 'Python', 'Pool'] 
  
# using del to delete elements from pos. 2 to 5 
# deletes 34, 15, 904
del lis[2 : 5] 
print(lis)

Выход:

[16, 1, 'Python', 'Pool']

Объяснение:

Итак, в этом примере мы инициализировали список из 7 элементов. Затем мы удалили элементы в позиции 2-5. С помощью нарезки и Python del ключевое слово.

Пример 6: Программа Python для удаления ключа из словаря

Dict = {'w':101,'x':102,'y':103,'z':104}
print(Dict)
if 'x' in Dict: 
    del Dict['x']
print(Dict)

Выход:

{'w': 101, 'x': 102, 'y': 103, 'z': 104}
{'w': 101, 'y': 103, 'z': 104}

В приведенном выше примере мы удалили пару ключ: значение из словаря. Изначально у нас в словаре есть 4 пары. После удаления ключа словаря x у нас есть только 3 элемента в словаре.

Python del: Дополнительные советы, замечания и примеры

Вы не можете удалить элементы кортежей и строк. Это потому, что кортежи и строки неизменны; объекты, которые не могут быть изменены после его создания.


my_tuple = (1, 2, 3)

# Error: 'tuple' object doesn't support item deletion
del my_tuple[1]

Однако вы можете удалить весь кортеж или строку целиком.

my_tuple = (1, 2, 3)

# deleting tuple
del my_tuple

Разница между remove, Python dev и pop в Python

  • remove() удаляет соответствующий элемент/объект, тогда как del и pop удаляют элемент с определенным индексом.
  • del и pop имеют дело с индексом. Единственное различие между ними заключается в том, что- pop return удалил значение из списка, а del ничего не возвращает.
  • Pop-это единственный способ вернуть объект.
  • Remove-это единственный объект, который ищет объект (а не индекс).

Вкратце: Используйте del для удаления элемента по индексу, pop для удаления его по индексу, если вам нужно возвращаемое значение, и remove для удаления элемента по значению.

Пример remove, Python dev и pop

# (1) Remove an item with index
A = [1, 2, 4, 3, 4]
A.remove(4)
# This will print [1, 2, 3, 4]
print("Example 1 : A = {}".format(A))
 
# (2) Delete an item with index
A = [1, 2, 4, 3, 4]
del A[2]
# This will print [1, 2, 3, 4]
print("Example 2 : A = {}".format(A))
 
# (3) Delete all items
A = [1, 2, 4, 3, 4]
del A[:]
# This will print []
print("Example 3 : A = {}".format(A))
 
# (4) Delete a slice 2, 4
A = [1, 2, 4, 3, 4]
del A[1:3]
# This will print [1, 3, 4]
print("Example 4 : A = {}".format(A))
 
# (5) pop: remove and get the last item
A = [1, 2, 4, 3, 4].pop()
# This will print [1, 2, 4, 3]
print("Example 5 : A = {}".format(A))
# This will print 4
print("Example 5 : x = {}".format(x))
 
# (6) pop with index: remove and get the second item
A = [1, 2, 4, 3, 4].pop(1)
# This will print [1, 4, 3, 4]
print("Example 6 : A = {}".format(A))
# This will print 2
print("Example 6 : x = {}".format(x))

Выход:

Example 1 : A = [1, 2, 3, 4]
Example 2 : A = [1, 2, 3, 4]
Example 3 : A = []
Example 4 : A = [1, 3, 4]
Example 5 : A = [1, 2, 4, 3]
Example 5 :
Example 6 : A = [1, 4, 3, 4]
Example 6 :

Время выполнения

Вычислительная сложность (т. е. время выполнения или Big-O) выглядит следующим образом:

  • del O(n)
  • pop O(1)
  • удалить O(n)

Обратите внимание, что эти времена выполнения являются наихудшими сценариями. Например, удаление элемента в начале списка занимает постоянное время.

Какой самый лучший способ удалить элемент в списке?

  • Если вы хотите удалить определенный объект из списка, используйте метод remove.
  • Если вы хотите удалить объект в определенном месте (индексе) в списке, вы можете использовать del или pop.
  • Используйте pop, если вы хотите удалить и получить объект в определенном месте.

Разница между Python del и Присвоением None

Разница в том, что освободит все, на что ссылается, но сохранит имя, даже если оно просто ссылается на None (что является типом, NoneType).

С другой стороны, del x полностью удалит как имя, так и то, на что оно ссылается. Если после этого вы попытаетесь использовать x, будет выброшен NameError (или AttributeError в случае свойства объекта).

Таким образом, на практике, назначая None имени, вы все равно можете использовать его в выражениях, в то время как при использовании del имя полностью удаляется. В первом случае несколько href=”https://en.wikipedia.org/wiki/Byte”>байты необходимы для сохранения имени в памяти, в то время как более поздние полностью очищают все использование памяти. href=”https://en.wikipedia.org/wiki/Byte”>байты необходимы для сохранения имени в памяти, в то время как более поздние полностью очищают все использование памяти.

Когда я должен и не должен использовать ключевое слово del в Python?

Используйте оператор ‘del’, когда вы хотите удалить элемент из списка, и вы знаете, что вам никогда больше не нужно будет ссылаться на этот элемент.

Если вы хотите по какой-либо причине удержать удаленный элемент списка, используйте вместо этого метод “pop”.

Должен Читать:

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python в 2020 году

Вывод

Python del-это полезное ключевое слово. Поначалу его синтаксис может сбить с толку. Но как только мы используем dell больше как оператор, а не вызов метода, это легко запомнить.

Удаление рекурсивно определяется очень похоже на то, как определяется назначение. Вместо того чтобы излагать его во всех подробностях, вот несколько советов. Удаление списка целей рекурсивно удаляет каждую цель слева направо.

Попробуйте запустить программы на вашей стороне и дайте мне знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!