On 7/11/17, Steven D'Aprano <st...@pearwood.info> wrote: > I have a colleague who is allergic to mutating data structures. Yeah, I > know, he needs to just HTFU but I thought I'd humour him. > > Suppose I have an iterator that yields named tuples: > > Parrot(colour='blue', species='Norwegian', status='tired and shagged out') > > and I want to collect them by colour: > > accumulator = {'blue': [], 'green': [], 'red': []} > for parrot in parrots: > accumulator[parrot.colour].append(parrot) > > > That's pretty compact and understandable, but it require mutating a bunch > of pre-allocated lists inside an accumulator. Can we re-write this in a > functional style? > > The obvious answer is "put it inside a function, then pretend it works by > magic" but my colleague's reply to that is "Yes, but I'll know that its > actually doing mutation inside the function". > > > Help me humour my colleague.
This seems to be philosophical question to me: How to (or "what colleague could accept" or "what do you mean by") collect elements if not adding them to lists? -- https://mail.python.org/mailman/listinfo/python-list