Python: Simplify many if-statements -


I have a function that crosses a tree and returns elements as a list < Is there a way to simplify all if statements in Code> treeToList :: traverse , because it looks kind of redundant?

  #! / Usr / bin / python def enum (** enums): return type ('enum', (), enums) order = enum (PREORDER = 0, INORDER = 1, POSTORDER = 2) DRF contact form (root, order = order .adders): ret = list () Def transmissions (node, order): if order == order. Preder: ret.append (node.data) if node. Right! = None: Traverse (node. Right, order) if order == order. Inder: Rate .append (node.data) if node.down! = None: Traverse (node ​​down, order) if order == order. Poster: ret.append (node.data) traverse (root, order) return rate class node: def __init __ (self, data = none): self.data = data self.down = none self.right = any If not __name__ == '__main__': root = node ('F') root.right = node ('B') Root.down = node ('g') root.right.right = node ('a') root .right.down = node ('d') root.down.down = node ('i') root.right .down.right = node ('c') root.right.down.down = node ('e' ) Root.down.down.right = node ('H') print treeT old (root, order .predder) print treelist (root, order.innder) print treelist (root, order.postard)   

Output <['A', 'B'] ['F', 'B', 'A', 'D', 'C', 'E', 'G', 'I', 'H' ['A', 'C', 'E', 'D', 'B'], 'C', 'D', 'E', 'F', 'G', 'H', 'I'

Good, If you are getting rid of closing .. The pure function is obvious:

  def tree tolist (node, order = order. Indoor): If the node is not any: Return [] Correct = Tristolist (node. Right, order) down = tristolist (node ​​down, order) current = [node] If order == order. Preder: Returns current + right + down if order == Order. Indder: Return Right + Current + Down Order == Order. Powered: Return Right + Down + Current   

but definitely build Intermediate Lists.

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -