Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #85217

Re: meaning of: line, =

References <CAPTjJmpqx1Cmm89Lg6-XL4-xdM+xD6=GHKvWb2zYTe4=11ZPPg@mail.gmail.com> <657497900.499606.1423060711538.JavaMail.yahoo@mail.yahoo.com>
Date 2015-02-05 02:04 +1100
Subject Re: meaning of: line, =
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.18465.1423062269.18130.python-list@python.org> (permalink)

Show all headers | View raw


On Thu, Feb 5, 2015 at 1:38 AM, Albert-Jan Roskam <fomcl@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

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: meaning of: line, = Chris Angelico <rosuav@gmail.com> - 2015-02-05 02:04 +1100

csiph-web