I can't understand why my dictionary is changing once it has came out of the function. Consider:

```
my_dct = {"A" : 0,
        "B" : 1,
        "C" : 4,
        "D" : 0,
        "E" : 0,
        "Z" : 9,
        "F" : 0,
        "G" : 3,
       }

def remove_0(dct):
    dct = {key:val for key, val in dct.items() if val != 0}
    print(dct)
    return dct

print(my_dct)
remove_0(my_dct)
print(my_dct)

```

This code outputs:

```
{'A': 0, 'B': 1, 'C': 4, 'D': 0, 'E': 0, 'Z': 9, 'F': 0, 'G': 3}
{'B': 1, 'C': 4, 'Z': 9, 'G': 3}
{'A': 0, 'B': 1, 'C': 4, 'D': 0, 'E': 0, 'Z': 9, 'F': 0, 'G': 3}

```

But shouldn't it output:

```
{'A': 0, 'B': 1, 'C': 4, 'D': 0, 'E': 0, 'Z': 9, 'F': 0, 'G': 3}
{'B': 1, 'C': 4, 'Z': 9, 'G': 3}
{'B': 1, 'C': 4, 'Z': 9, 'G': 3}

```