For what it's worth, I was just writing the following today, and Steven's
proposal came to mind.

If we ignore the set of questionable (but realistic) decisions that led to
me having to do the following, and the discussion on how the unpacking
syntax would look:

---[ wot I wrote ] ---
    if request.method == 'POST':
        results = {}
        for item in request.json:
            thing = item['thing']
            if item['kind'] == 'ignore':
                results[thing] = ('ignore', None)
            else:
                results[thing] = (item['kind'], item['alternate'])

--- [dict unpacking version] ---
    if request.method == 'POST':
        results = {}
        for item in request.json:
            thing, kind, alternate = **item
            results[thing] = (kind_, None if kind == 'ignore' else
alternate)

I'm not using an inline-if expression in the first example, but the
hypothetical second one seems simple enough to support it.

Note: One thing that slightly bothers me about this is the potential for
naming collisions with built-ins  (I.e, I nearly used 'type' instead of
'kind' int the above data generated from javascript)

Steve

On Fri, Oct 23, 2020 at 9:20 AM Alex Hall <alex.moj...@gmail.com> wrote:

> On Fri, Oct 23, 2020 at 5:27 AM Steven D'Aprano <st...@pearwood.info>
> wrote:
>
>> Background
>> ----------
>>
>> Iterable unpacking assignment:
>>
>>     values = (1, 2, 3)
>>     a, b, c = *values
>>
>> is a very successful and powerful technique in Python.
>>
>
> Your proposed syntax seems to rest on being similar to this syntax for
> iterable unpacking. But that asterisk isn't valid syntax, so I'm confused.
>
> This is valid syntax:
>
>     a, b, c, *rest = values
>
> but that doesn't make it make sense to write `... = **values` as you
> suggest. And this is valid:
>
>     a, b, c = [*values]
>
> but that asterisk has nothing to do with assignment.
> _______________________________________________
> 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/QX4RBF2XBYG5LBEPJNZ7LS57HGPD4FHU/
> 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/7TAKJ6DMLF4CMPP4QRQASDMVCU7TE2R7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to