Como evitar o erro “RuntimeError: dictionary changed size during iteration”?

Eu verifiquei todas as outras perguntas com o mesmo erro e ainda não encontrei nenhuma solução útil = /

Eu tenho um dicionário de listas:

d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}

em que alguns dos valores estão vazios. No final da criação dessas listas, desejo remover essas listas vazias antes de retornar meu dicionário. Atual eu estou tentando fazer isso da seguinte maneira:

for i in d:
    if not d[i]:
        d.pop(i)

no entanto, isso está me dando o erro de execução. Estou ciente de que você não pode adicionar / remover elementos em um dicionário enquanto iterar através dele ... o que seria uma maneira de contornar isso então?

questionAnswers(7)

yourAnswerToTheQuestion