def e_greedy(Vs,states,epsilon):
    
    import random as rand
    
    # Find the best option at current s
    # be greedy (use it) or pick randomly from the 
    # other choices
    # TODO Use defaultdict instead to handle new states?
    available_Vs = {}
    for s in set(states):
        available_Vs[s] = 0
    
    # find best v, store label and value
    best_v_s =  None# todo (v,s)
    choices = []
    for v,s in Vs,states:
        greed = True
        if rand.random() <= epsilon:
            greed = False

        if greed:
            pass
            # TODO y: is current v > best_v, return the choice      
        else:
            pass
            # n: pick one of the other v,s pairs and return that
    # for consistency instead return p_vals - 1 for choice e for epsilon    
    return choices
UNTESTED
dataset/ETHPy150Open parenthetical-e/rl/policy.py/e_greedy