Подтвердить что ты не робот

Лучший способ удалить элемент из dict

В Python существует как минимум два метода для удаления элемента из dict с помощью ключа.

d = {"keyA": 123, "keyB": 456, "keyC": 789}

#remove via pop
d.pop("keyA")

#remove via del
del d["keyB"]

Оба метода удалили бы элемент из dict.

Интересно, какие методы я должен использовать и почему. Кроме того, что более pythonic?

4b9b3361

Ответ 1

Используйте d.pop, если вы хотите захватить удаленный элемент, например, в item = d.pop("keyA").

Используйте del, если вы хотите удалить элемент из словаря.

Ответ 2

pop возвращает значение удаляемого ключа.
В принципе, d.pop(key) оценивается как x = d[key]; del d[key]; return x.

  • Используйте pop, когда вам нужно знать значение удаленной клавиши
  • Используйте del иначе

Ответ 3

Я предполагаю, что это сводится к тому, что вам нужен удаленный элемент, возвращенный или нет. pop возвращает элемент удален, del нет.

Ответ 4

Используя очень простой таймер, я проверил эффективность этих функций:

def del_er(nums,adict):
     for n in nums:
        del adict[n]
def pop_er(nums,adict):
     for n in nums:
        adict.pop(n)

В моей системе, используя 100 000 элементов dict и 75 000 случайно выбранных индексов, del_er запустил примерно 0,330 секунд, pop_er запустил примерно 0,412 секунды.