Jul-18-2018, 06:34 PM
I would say the "pythonic" way, would be to use the
itertools
module. Though, I doubt your professor would appreciate seeing that lol. Unfortunately, itertools is written in c, not python, so seeing how you could do that yourself doesn't really help: https://github.com/python/cpython/blob/m...le.c#L3424>>> text = 'Hello World' >>> text = ' '.join(text.split()[::-1]) >>> text 'World Hello' >>> import itertools >>> for permutation in itertools.accumulate(text): ... print(permutation) ... W Wo Wor Worl World World World H World He World Hel World Hell World HelloThat said, if I were to write it in python, I would probably do something like this:
>>> def accum(iterable): ... iterable = iter(iterable) ... total = next(iterable) ... yield total ... for remaining in iterable: ... total += remaining ... yield total ... >>> text 'World Hello' >>> list(accum(text)) ['W', 'Wo', 'Wor', 'Worl', 'World', 'World ', 'World H', 'World He', 'World Hel', 'World Hell', 'World Hello']