In my specific case, I would like to pass a dictionary that contains lists that I don't want exposed without having to make a time-consuming deep copy. But, I am also wondering this just in general as well.
In my case I am trying to pass an object to this one:
dictionary = 
{'x': 
    {
    0: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    1: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    2: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    3: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}, 
    'y':
{
    0: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    1: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    2: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    3: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
} 
.
.
.
 
    