meaning of: line, =

Chris Angelico rosuav at gmail.com
Wed Feb 4 10:04:26 EST 2015


On Thu, Feb 5, 2015 at 1:38 AM, Albert-Jan Roskam <fomcl at yahoo.com> wrote:
> I have also never seen this before, but perhaps this:
>
>>>> f = lambda: [42]
>>>> result, = f()
>>>> result
> 42
>
> ... is slightly cleaner than this:
>>>> result = f()[0]
>>>> result
> 42

They're not technically identical. If the thing returned is
subscriptable (as with your list example), then I would definitely
subscript it rather than unpacking; but if it's something iterable but
not subscriptable, the unpack will still work.

>>> def f(): yield 42
...
>>> result, = f()
>>> result
42
>>> result = f()[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'generator' object is not subscriptable

ChrisA



More information about the Python-list mailing list