Comment by charlieyu1
Comment by charlieyu1 3 days ago
More and more dubious things were designed in Python these days. A recent PEP purposes to use {/} as the empty set
Comment by charlieyu1 3 days ago
More and more dubious things were designed in Python these days. A recent PEP purposes to use {/} as the empty set
{:} should have been the empty dict, now there's no good solution
I agree that {:} would be a better empty expression for dicts, but that ship has already sailed. {/} looks like a good enough alternative
Making sense, and being good, is not necessary the same.
Yes, having a solution for this makes sense, but the proposed solutions are just not good. Sometimes one has to admit that not everything can be solved gracefully and just stop, hunting the whale.
You can use “set()”. Introducing more weird special cases into the language is a bad direction for Python.
And you can use dict() for an empty dictionary, and list() for an empty list.
For reasons I don't think I understand, using the functions is "discouraged" because "someone might muck with how those functions work" and the python world, in it's perfect wisdom responded "Oh of course" instead of "That's so damn stupid, don't do that because it would be surprising to people who expect built in functions to do built in logic"
Yes but they are not equivalent. dict and list are factories; {} and [] are reified when the code is touched and then never reinitialised again. This catches out beginners and LLMs alike:
https://www.inspiredpython.com/article/watch-out-for-mutable...
Idk that doesn’t sound so dubious to me. ∅ might be more approachable for the PHDs then set() ;)
Problem is, we already have a syntax for empty lists [], empty tuples (), and {} is taken for an empty dict. So having a syntax for an empty set actually makes sense to me