我是这个网站的新手,我有一个需要帮助的问题。我试图在字典和相应的键中找到最高的整数值,然后检查是否有其他键具有相同的值。如果有重复的值,我想随机选择其中一个并返回。到目前为止,代码可以在字典中找到最大值并返回键,但是每次都返回相同的键。我无法检查具有相同值的其他键。

def lvl2():
    global aiMove2
    posValueD = {}
    for x in moveList(): #Movelist returns a list of tuples
        m = aiFlip(x) #aiFlip returns an integer
        posValueD[x] = m
    aiMove2 = max(posValueD, key = posValueD.get)
    return aiMove2

最佳答案

获得最大值后,您可以检查其值的每个键。该理解列表返回一个键列表,如果与aiMove2相同,则该键关联的值。

keys = [x for x,y in posValueD.items() if y == posValueD[aiMove2]]


这是Python shell中的示例:

>>> a = {'a':1, 'b':2, 'c':2}
>>> [x for x,y in a.items() if y == 2]
['c', 'b']

关于python - 使用python返回字典中具有相同对应值的所有键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22119987/

10-12 22:07