Delete empty values from dictionary in place

Using of 'item' and 'iteritem' for different versions of python means that you care about memory, so why don't modify 'values' in place. New solution is less 'pythonic', but as benefit no need to handle different python version and overhead is only list of value.keys() which is known in advance and small.