I'm constantly fighting an internal battle between functional programming and being more pythonic.<p>For example: I once rolled my own lisp style immutable list type using nested tuples, i.e. (1,(2,(3,None))) for a problem that they were particularly well suited. (<a href="http://en.wikipedia.org/wiki/Knapsack_problem#0-1_knapsack_problem" rel="nofollow">http://en.wikipedia.org/wiki/Knapsack_problem#0-1_knapsack_p...</a>) and got about a 10% speedup. In the end though I threw it out because it was far too ugly.<p>But I always prefer a def and a map to a for loop.