On Thu, Apr 18, 2019 at 5:41 PM Sayth Renshaw <flebber.c...@gmail.com> wrote: > > Thank you for the advice everyone. > > > > > The first thing to try is find every place where you update myMax, and > > This was actually where I was going wrong. I was setting max but then > overwriting it with item. Then kept checking item only to return myMax. > > I went looking for other solutions as I thought I must be well off the path > in the shrubs but I was actually close. > > This is how I ended up. There may be better solutions but this works. > > def maximum(listarg): > items = list(listarg) > myMax = items[0] > for item in items: > for i in items[items.index(item)+1:len(items)]: > if myMax < i: > myMax = i > else: > pass > > return myMax > > > if __name__ == "__main__": > print(maximum([4,3,6,2,1,4])) >
This is where I would strongly recommend printing lots of stuff out, to explore what the algorithm is doing at each point. See if you can figure out when myMax is being updated. (Also: items.index(item) will potentially give the wrong result if you have duplicates.) ChrisA -- https://mail.python.org/mailman/listinfo/python-list