in Python? -- Chunk -- (ChunkC '(a a b b b)), ==> ((a 2) (b 3))
HenHanna
HenHanna at devnull.tb
Tue Jun 11 18:07:34 EDT 2024
On 6/10/2024 6:29 AM, Rob Cliffe wrote:
> import itertools
>
> def chunk1(seq):
> return [ ch * len(list(grp)) for (ch, grp) in itertools.groupby(s) ]
>
> def chunk2(seq):
> return [ (ch, len(list(grp))) for (ch, grp) in itertools.groupby(s) ]
>
> s='aaabbccccaa'
> print(chunk1(s))
> print(chunk2(s))
> ###################################
> Program output:
> ['aaa', 'bb', 'cccc', 'aa']
> [('a', 3), ('b', 2), ('c', 4), ('a', 2)]
>
> Rob Cliffe
>
thank you... OMG... For 10 minutes... i was SO mystified by
the question...
How can this code work??? , when it's
> def chunk1(seq):
and it's [s] within the def-body ?
it seemed as if the Compiler was doing a DWIM (Do what i mean) trick.
> On 09/06/2024 22:20, HenHanna via Python-list wrote:
>>
>> Chunk, ChunkC -- nice simple way(s) to write these in Python?
>>
>>
>> (Chunk '(a a b a a a b b))
>> ==> ((a a) (b) (a a a) (b b))
>>
>>
>> (Chunk '(a a a a b c c a a d e e e e))
>> ==> ((a a a a) (b) (c c) (a a) (d) (e e e e))
>>
>>
>> (Chunk '(2 2 foo bar bar j j j k baz baz))
>> ==> ((2 2) (foo) (bar bar) (j j j) (k) (baz baz))
>>
>> _________________
>>
>> (ChunkC '(a a b b b))
>> ==> ((a 2) (b 3))
>>
>> (ChunkC '(a a b a a a b b))
>> ==> ((a 2) (b 1) (a 3) (b 2))
>
More information about the Python-list
mailing list