Как удалить все нулевые элементы из словаря?
Нужно пройти его рекурсивно.>>> def f(d):
...     for i in set(d):
...         e = d[i]
...         if isinstance(e, dict):
...             f(e)
...         elif e == 0:
...             del d[i]
... 
>>> d = {'user1': {'var1': 2,
...                'var2': 0,
...                'var3': 1,
...                'var4': 0},
...      'user2': {'var1': 0,
...                'var2': 1,
...                'var3': 0,
...                'var4': 0},
...      'user3': {'var1': 1,
...                'var2': 0,
...                'var3': 0,
...                'var4': 0}}
>>> 
>>> f(d)
>>> d
{'user3': {'var1': 1}, 'user2': {'var2': 1}, 'user1': {'var1': 2, 'var3': 1}}
>>>
Как вариант:list = {'user1' : { 'var1': 2, 'var2': 0, 'var3': 1, 'var4': 0}, 'user2' : {'var1': 0, 'var2': 1, 'var3': 0, 'var4': 0}, 'user3' : { 'var1':1, 'var2': 0, 'var3':0, 'var4':0}}

for u in list:
  for i in list[u]:
    if list[u][i] == 0:
      del list[u][i]

print(list)