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

Тихонько удалите ключ из python dict

У меня есть python dict, и я хотел бы молча удалить ключи None и '' из моего словаря, поэтому я придумал что-то вроде этого:

try:
    del my_dict[None]
except KeyError:
    pass

try:
    del my_dict['']
except KeyError:
   pass

Как вы видите, это менее читаемо, и это заставляет меня писать дубликат кода. Итак, я хочу знать, существует ли метод на python для удаления любого ключа из файла без сброса ключевой ошибки?

4b9b3361

Ответ 1

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

d.pop("", None)
d.pop(None, None)

Словарь Pops со значением по умолчанию, которое вы игнорируете.

Ответ 2

Вы можете использовать метод dict.pop и проигнорировать результат:

for key in [None, '']:
    d.pop(key, None)

Ответ 3

Вы можете попробовать:

d = dict((k, v) for k,v in d.items() if k is not None and k != '')

или удалить все пустые клавиши

d = dict((k, v) for k,v in d.items() if k )

Ответ 4

Следующие будут удалять ключи, если они присутствуют, и не будут вызывать ошибку:

for d in [None, '']:
    if d in my_dict:
        del my_dict[d]