in Python? -- Chunk -- (ChunkC '(a a b b b)), ==> ((a 2) (b 3))
HenHanna
HenHanna at devnull.tb
Sun Jun 9 19:16:27 EDT 2024
On 6/9/2024 3:50 PM, MRAB wrote:
> On 2024-06-09 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))
>
> You can make use of itertools.groupby.
>
Thanks! i'll try it.
Scheme (Gauche)
(use srfi-1) ; span
(define (gp x)
(if (null? x) '()
(let-values (((F L) (span (cut equal? (car x) <>) x)))
(cons F (gp L)))))
(print (gp '(a b b a a a b b b b)))
(print (gp '(c c c a d d d d a e e e e e)))
More information about the Python-list
mailing list