Ответ 1
Используйте d.pop
, если вы хотите захватить удаленный элемент, например, в item = d.pop("keyA")
.
Используйте del
, если вы хотите удалить элемент из словаря.
В Python существует как минимум два метода для удаления элемента из dict с помощью ключа.
d = {"keyA": 123, "keyB": 456, "keyC": 789}
#remove via pop
d.pop("keyA")
#remove via del
del d["keyB"]
Оба метода удалили бы элемент из dict.
Интересно, какие методы я должен использовать и почему. Кроме того, что более pythonic?
Используйте d.pop
, если вы хотите захватить удаленный элемент, например, в item = d.pop("keyA")
.
Используйте del
, если вы хотите удалить элемент из словаря.
pop
возвращает значение удаляемого ключа.
В принципе, d.pop(key)
оценивается как x = d[key]; del d[key]; return x
.
pop
, когда вам нужно знать значение удаленной клавишиdel
иначеЯ предполагаю, что это сводится к тому, что вам нужен удаленный элемент, возвращенный или нет. pop
возвращает элемент удален, del
нет.
Используя очень простой таймер, я проверил эффективность этих функций:
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 секунды.