On Fri, Apr 9, 2021 at 1:30 PM David Mertz <[email protected]> wrote:
> I don't do twitter, so hadn't seen Raymond's comment. But I agree that
> `{*()}` is too-clever-by-half. Moreover, it's the same character count as
> `set()`, so it doesn't even save anything.
>
> Using five characters to create an empty `set()` really isn't that many. I
> do that all the time. Proposals to get that down to three characters don't
> feel like any big win. Actually, I've largely gotten in the habit of
> writing `list()` and `dict()` as well when I want to start with empty
> ones. I suppose the fact I do that is influenced by having to do it with
> `set()`; but even beyond that, I find it jumps out in intent more than the
> display forms.
>
> The pattern of "Create an empty collection, then add stuff in a loop" is
> quite common, and emphasizing which type of collection is being used is
> useful. Moreover, the type might be `Queue()`, or `deque()` or `Counter()`
> as well, and I don't expect or want literals for every possible collection.
>
Devil's advocate: it might be nice to not have to import all of those
highly useful collection classes from collections all the time.
What about creating syntax that looks something like:
Counter() < ---- > c{}
Queue() < ---- > q{}
deque() < ---- > dq{}
ChainMap() < ---- > cm{}
OrderedDict() < ---- > od{}
defaultdict(list) < ---- > dd{list} # this one is admittedly a little weird
And similarly, while you're at it you could do something like:
set() < ---- > s{}
To be clear: I am not proposing a new "alt call" syntax... these are to be
new LITERALS. I see this as sort of analogous to f-string syntax:
f""
One benefit is this could greatly shorten the reprs for ALL of these types.
Consider:
defaultdict(<class 'list'>, {})
rather than:
dd{list}
---
Ricky.
"I've never met a Kentucky man who wasn't either thinking about going home
or actually going home." - Happy Chandler
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/VKUD4M7S3AEU4TRVPW7FMZXVRXNLY7P7/
Code of Conduct: http://python.org/psf/codeofconduct/