列表查询,函数功能

时间:2010-08-02 08:37:09

标签: python function list

我有一个功能:

       I need to first reverse the list and then take an entry from it.

早些时候,我正在制作3个函数,但现在我正在定义main函数和其他2个函数。

1 个答案:

答案 0 :(得分:4)

你的代码非常单一。记住Python不是C.

  1. 分号是可选的。
  2. if中的括号是可选的。
  3. 要获取列表a的最后一个元素,请使用a[-1],而不是撤消a,然后获取其第一个元素。
  4. 使用内置功能!您可以使用maxagent函数简单地编写修改后的max

    def maxagent(gamestate, depth):
        actions = gamestate.getLegalActions(0)
        filteredactions = filter(lambda action: action != Directions.STOP, actions)
        # alternatives: 
        #    filteredactions = filter(Directions.STOP.__ne__, actions)
        #    filteredactions = (a for a in actions if a != Directions.STOP)
        bestaction = max(filteredactions,
                         key=lambda action: self.minvalue(
                                              gamestate.generateSuccessor(0, action),
                                              depth, 1
                                            ))
        return bestaction
    
  5. 如果您还需要得分,请考虑返回元组

    def maxagent(gamestate, depth)
        actions = gamestate.getLegalActions(0)
        scores = ( (self.minvalue(gamestate.generateSuccessor(0, a), depth, 1), a)
                   for a in actions if a != Directions.STOP
                 )
        return max(scores)
    ...
    score, action = maxagent(gamestate, depth)