Nice optimization! I have questions on the proposed API. > with_values(self, iterable, /) > Create a new dictionary with keys from this dict and values from iterable. > > When length of iterable is different from len(self), ValueError is raised. > This method does not support dict subclass.
In short, mydict.with_values(values) behaves as dict(zip(mydict.keys(), values)), but is more efficient? The method rely on the fact that dict is preserving key insertion order, right? Le ven. 12 avr. 2019 à 15:47, Inada Naoki <songofaca...@gmail.com> a écrit : > This might be usable for: > > * csv.DictReader > * namedtuple._asdict() > * DB-API 2.0 implementations: (e.g. DictCursor of mysqlclient-python) I guess that a new dict constructor taken keys and values like dict.from_keys_and_values(keys, values) would work, but would not benefit from the dict key-sharing optimization? Would it be possible to implement the key-sharing optimization using a dict.from_keys_and_values(mydict.keys(), values) method: detect that keys are owned by a dict, and so create a new dict linked to the keys dict? A dict view contains a reference to the iterated dict (dictiterobject.di_dict). I'm fine with dict.with_values() API, but I'm asking if it could be written differently. Victor -- Night gathers, and now my watch begins. It shall not end until my death. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com