Given is a list with unsorted indices in a list of length n. Each element of the list is only once contained. So the list looks like this
L = [13, 145, 70001, 34, ..., 533]
Also given is a dictionary d which numerical values as key. All values are element 
{0,1}. Like
d = {
        "[some data]" : 0,
        "[some data]" : 1,
        "[some data]" : 1,
        "[some data]" : 1,
        ...
        "[some data]" : 0
    }
There are a lot more entries in the dictionary d then in the list L.
What I want to do is deleting data from the dictionary for each position (index) from L if it is a 0. 
The problem that I see while proceeding it that after the each deletion the indices need to be shifted since the position within dictionary is changing. Which is quiet inefficient regarding on a large number of items in L. There must be an efficient way of proceeding this task. 
Any ideas and suggestions are highly appreciated!
 
     
     
     
    