I like Atsou's suggestion of omitting the key for literals:

d = {:name, :addr, ’tel': '123-4567’}


but using empty kwargs feels gross:

d = dict(=name, =addr, tel='123-456')

And this feels like it could easily lead to confusion:

d = dict(name, addr, tell='123-456')

On Thu, Jun 11, 2020 at 4:05 PM Abe Dillon <abedil...@gmail.com> wrote:

> Stephen J. Turnbull
>
>>  d = {first : first, last, addr1, addr2}
>
>
> I'm not a huge fan of this solution. It feels a bit like a hack instead of
> an intended syntax. Since prefixing characters on strings is already a
> thing, I lean more towards that solution. It's slightly easier to search
> (e.g. if the notation was d{literal1, literal2, etc}, one might search for
> "python d-dict"). However, If the above notation gains favor, perhaps it
> would be better to allow an empty ':' followed by a comma:
>
> d = {:, first, last, addr1, addr2}
>
> I don't much like the Perlyness of that syntax, but it's similar to using
> a prefix and it might lead to more explicit empty literals like {:} and {,}
> for dict and set respectively. I'm pretty sure that notation for empty
> literals has been discussed and rejected before, so I apologize if this
> brings up well-trodden ground. I'm pretty neutral on the proposal in
> general.
>
> It may also be possible to add a constructor to dict like:
>
> d = dict.from_locals('first', 'last', 'addr1', 'addr2')
> d['tel'] = '123-456-789'
>
> It might require a bit of stack inspection or some other magic, but it
> should be possible. It might be difficult for IDEs to recognize and hint
> and it might also be a blind-spot for re-factoring (if you change the name
> of a local variable).
>
> On Wed, Jun 10, 2020 at 3:06 AM Stephen J. Turnbull <
> turnbull.stephen...@u.tsukuba.ac.jp> wrote:
>
>> Chris Angelico writes:
>>  > On Wed, Jun 10, 2020 at 1:15 PM Stephen J. Turnbull
>>  > <turnbull.stephen...@u.tsukuba.ac.jp> wrote:
>>  > >
>>  > > Executive summary:
>>  > >
>>  > > Dicts are unordered, so we can distinguish dict from set by the first
>>  > > item (no new notation), and after that default identifiers to (name :
>>  > > in-scope value) items.
>>  >
>>  > Be careful with this assumption. Python's dictionaries DO retain
>>  > order,
>>
>> Thank you for the reminder!  I did forget that point.
>>
>>  > even if you can't easily talk about "the fifth element" [1], so
>>  > anything that imposes requirements on the entry listed
>>  > syntactically first may have consequences.
>>
>> No requirements imposed!  If iteration order matters and you want to
>> take advantage of abbreviation, you might have to write
>>
>>     d = {first : first, last, addr1, addr2, tel='123-456-789'}
>>
>> but frequently it would just work naturally:
>>
>>     d = {first : first, last, addr1, addr2}
>>
>> Admittedly this distinction may be even more subtle than grit on Tim's
>> screen, or randomizing the hash seed per process.  And I suspect that
>> people who want this feature will prefer the d{} notation for
>> consistency inside the braces.
>>
>> Steve
>> _______________________________________________
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/ENXYVRXOAEOBWHN6SQK5K4IJUTRHHXLB/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/F2DDRMDOQOMCWATOV2CN3AZTYT3FPVTA/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/TF3R55FVQJFNRXJLTQGLRXC5LPBNQQ42/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to