[Python-ideas] Possible method of distinguishing between set-literals, dict-literals, and odict-literals
Terry Reedy
tjreedy at udel.edu
Tue Jun 16 20:25:22 CEST 2009
MRAB wrote:
> Ron Adam wrote:
>>
>>
>> Ben Finney wrote:
>>> Carl Johnson
>>> <cmjohnson.mailinglist at gmail.com> writes:
>>>
>>>> we could introduce an empty set-literal and an odict-literal, and add
>>>> a more explicit form to replace the existing set literal.
>>>
>>> What do you mean by “more explicit”? The existing set literal syntax
>>> is quite explicit.
>>>
>>>> s{} could be the empty set, o{} could be an empty odict, and we could
>>>> leave {} alone as the form for dicts. So, an odict literal would look
>>>> like o{'a':'1', 'b':'2', 'c':'3'} instead of OrderedDict([('a', '1'),
>>>> ('b', '2'), ('c', '3')]). And the set {'a', 'c', 'b'} could
>>>> (optionally?) have a little s{'a', 'c', 'b'} to make it more explicit
>>>> that this is a set, not a dict.
>>>
>>> I don't think that word “explicit” means what you think it means.
>>
>> I think Carl is thinking that it is more concise and easier to read.
>>
>> When you read OrderedDict([('a', '1'),('b', '2'), ('c', '3')]), your
>> mind is parsing *Ordered Dictionary from list of these three tuples*.
>>
>> Whebn you read *o{'a':'1', 'b':'2', 'c':'3'}*, your mind does not have
>> the extra noise of converting the argument list of the constructor.
>>
> How about ['a':'1', 'b':'2', 'c':'3']?
>
>>
>> I think it really depends on how often ordered dictionaries literals
>> will be used weather or not it is worth doing. It also uses about 30%
>> to 50% less keystrokes.
>>
> Ideally we would have [...] for ordered and {...} for unordered, with
> ':' if it's keyed:
>
> [] ordered, value (list)
> [:] ordered, key+value (odict)
> {} unordered, value (set)
> {:} unordered, key+value (dict)
>
> It's too late to change that in Python 3.x, so it would have to be:
>
> [] ordered, value (list)
> [:] ordered, key+value (odict)
> {,} unordered, value (set)
> {} unordered, key+value (dict)
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
More information about the Python-ideas
mailing list