[Python-Dev] Proposal: dict.with_values(iterable)

Serhiy Storchaka storchaka at gmail.com
Tue Apr 23 13:48:15 EDT 2019


12.04.19 19:17, Inada Naoki пише:
> Maybe, collections.DictBuilder may be another option.  e.g.
> 
>>>> from collections import DictBuilder
>>>> builder = DictBuilder(tuple("abc"))
>>>> builder.build(range(3))
> {"a": 0, "b": 1, "c": 2}

Nitpicking: this is rather a factory than a builder. The difference 
between the patterns is that you create a new builder object for every dict:

     builder = DictBuilder()
     builder['a'] = 0
     builder['b'] = 1
     builder['c'] = 2
     result = builder.build()

and create a fabric only for the whole class of dicts:

     factory = DictFactory(tuple("abc"))  # only once
     ...
     result = factory(range(3))

I like the idea of a factory object more than the idea of the dict method.



More information about the Python-Dev mailing list