[Python-ideas] Run length encoding
Bernardo Sulzbach
mafagafogigante at gmail.com
Sat Jun 10 22:55:14 EDT 2017
On 2017-06-10 23:20, Neal Fultz wrote:
> Hello python-ideas,
>
> I am very new to this, but on a different forum and after a couple
> conversations, I really wished Python came with run-length encoding
> built-in; after all, it ships with zip, which is much more complicated :)
>
> The general idea is to be able to go back and forth between two
> representations of a sequence:
>
> |[1,1,1,1,2,3,4,4,3,3,3]|
>
> and
>
> |[(1, 4), (2, 1), (3, 1), (4, 2), (3, 3)]|
>
> where the first element is the data element, and the second is how many
> times it is repeated.
>
We can currently do it like this in one line:
[(k, sum(1 for _ in g)) for k, g in groupby(sequence)]
However, it is slower than a "dedicated" solution.
Additionally, I don't know if what you are proposing is generic enough
for the standard library.
--
Bernardo Sulzbach
http://www.mafagafogigante.org/
mafagafogigante at gmail.com
More information about the Python-ideas
mailing list