When it says that "argument passing" was responsible for 31% of the time, do I understand right that we're talking about this line in the inner loop?
str(i)
...and the time is spent packing i into a tuple (i,) and then unpacking it again?are keyword args faster? or they do the same but via dict instead of tuple I guess