python访问字典有两个键只使用一个键

时间:2015-10-31 16:53:11

标签: python dictionary machine-learning q-learning

我目前正在学习Q学习,我有一本字典Q [州,行动] 其中每个州可以是任何东西,即字符串,数字,列表......取决于应用程序。每个州都有3个或4个可能的行动。对于每个州,我需要找到具有最高Q值的动作。问题是我不知道如何直接从具有两个键的字典中访问状态所有可能的操作,所以我尝试使用for循环:

for statex, actionx in self.array:
    if statex == state and (actionx != None):
         y[actionx] = self.array[statex, actionx]
y.argMax()

其中argMax()

def argMax(self):
    """
    Returns the key with the highest value.
    """
    if len(self.keys()) == 0: return None
    all = self.items()
    values = [x[1] for x in all]
    maxIndex = values.index(max(values))
    return all[maxIndex][0]

问题是计算时间太长。任何想法如何让它更快,可能是通过消除循环?

1 个答案:

答案 0 :(得分:0)

如果你使用字典词典会快得多:

    self.array[state][action]