Oct-05-2019, 11:40 AM
(This post was last modified: Oct-05-2019, 11:40 AM by sashiessay.)
(Oct-04-2019, 05:23 PM)ichabod801 Wrote: In your function, you have:sumtree+=add_tree(i)That is equivalent to:sumtree = sumtree + add_tree(i)Given that you want to replace a and b ina + b
, what matches from your earlier code?
Thank you for the push. I ended up writing this
def op_tree(tree, op, base_case): """ Recursively runs a given operation on tree leaves. Return type depends on the specific operation. Inputs tree: A list (potentially containing sublists) that represents a tree structure. op: A function that takes in two inputs and returns the result of a specific operation on them. base_case: What the operation should return as a result in the base case (i.e. when the tree is empty). """ if isinstance(tree,int): return op(base_case,tree) else: value=op(base_case,base_case) for i in tree: value+=op_tree2(i,op,base_case) return valueWhich worked for the summation operation, but does not work for a product operation and I knew it was because I was using +=, which doesn't work for multiplication. However, going back to your comment after I tried this clarified things. I changed the code above incorporating your hint and I got it to work!