[Python-Dev] Proposal: dict.with_values(iterable)
Inada Naoki
songofacandy at gmail.com
Fri Apr 12 12:17:10 EDT 2019
On Sat, Apr 13, 2019 at 12:38 AM Serhiy Storchaka <storchaka at gmail.com> wrote:
>
> It looks contrary to simplification made in Python 3 when we get rid of
> some more efficient lists in favor of more general iterators.
>
Yes. This is API for special use case creates many dict having
same keys, like csv.DictReader.
It is not good design for general purpose.
strings module has strings.Template class. But I don't want to add
dicts module.
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}
> If this is a common case we can add an invisible optimization for
> dict(zip(keys, values)), especially if keys is a key-sharing dictionary.
> This will benefit all users without the need to rewrite the code to use
> the new special method.
But this optimization may slow down when creating one dict...
>
> The interface of dict is already overloaded. It contains many methods
> which most users use rarely (and therefore which are not kept in the
> working set of memory).
Yes.
--
Inada Naoki <songofacandy at gmail.com>
More information about the Python-Dev
mailing list