У меня есть словарь, как:Python: элегантный способ удалить пустые списки из словаря Python
default = {'a': ['alpha'], 'b': ['beta','gamma'], 'g': []}
Я хочу, чтобы исключить пустые значения, как:
default = {'a': ['alpha'], 'b': ['beta','gamma']}
Я написал функцию (после пример нашел в Интернете)
def remove_empty_keys(d):
for k in d.keys():
try:
if len(d[k]) < 1:
del[k]
except:
pass
return(d)
у меня есть следующие вопросы:
1- я не нашел ошибку, почему она всегда возвращает следующее -
remove_empty_keys(default)
{'a': ['alpha'], 'b': ['beta'], 'g': []}
2- Есть встроенная функция для устранения/удалить Null/NONE/пустые значения из словаря Python без создания копия исходного словаря?
Ваш вопрос, кажется, смешивает идею «Нет» с пустыми списками. Это затрудняет понимание. –
Возможно, лучший способ сказать, что это будет «Есть ли функция для устранения ложных значений из словаря» – mgilson
Ваша статья «try ... except», похоже, не имеет никакой цели, кроме как скрыть свои собственные ошибки от вас самих. Если вы действительно хотите использовать try/except, тогда вы всегда должны указывать исключение (ы), которое вы ожидаете (в данном случае KeyError). Таким образом, они не будут непреднамеренно скрывать несвязанные ошибки. Но в этом случае, если в параллельном потоке не существует кода, который модифицирует 'd', вы никогда не получите ключевую ошибку, потому что' k' * must * находится в 'd', поскольку он был возвращен' d.keys() '. –