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


Groups > comp.lang.python > #30980

RE: Unpaking Tuple

From "Prasad, Ramit" <ramit.prasad@jpmorgan.com>
Subject RE: Unpaking Tuple
Date 2012-10-08 22:21 +0000
References <801f0e2c-7d1d-4e91-bec5-78c5e53a70ec@googlegroups.com> <mailman.1898.1349519275.27098.python-list@python.org> <roy-289A2F.08462806102012@news.panix.com> <50704975$0$29978$c3e8da3$5496439d@news.astraweb.com> <20121008214558.GB4069@taris.box>
Newsgroups comp.lang.python
Message-ID <mailman.1973.1349736270.27098.python-list@python.org> (permalink)

Show all headers | View raw


Thomas Bach wrote:
> Hi there,
> 
> On Sat, Oct 06, 2012 at 03:08:38PM +0000, Steven D'Aprano wrote:
> >
> > my_tuple = my_tuple[:4]
> > a,b,c,d = my_tuple if len(my_tuple) == 4 else (my_tuple + (None,)*4)[:4]
> >
> 
> Are you sure this works as you expect? I just stumbled over the following:
> 
> $ python
> Python 3.2.3 (default, Jun 25 2012, 23:10:56)
> [GCC 4.7.1] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> split = ['foo', 'bar']
> >>> head, tail = split if len(split) == 2 else split[0], None
> >>> head
> ['foo', 'bar']
> >>> tail
> >>>
> 
> I don't get it! Could someone help me, please? Why is head not 'foo'
> and tail not 'bar'?
> 
> Regards,
> 	Thomas
> --

I think you just need to wrap the else in parenthesis so the
else clause is treated as a tuple. Without the parenthesis 
I believe it is grouping the code like this.

head, tail = (split if len(split) == 2 else split[0] ), None

You want:
head, tail = split if len(split) == 2 else (split[0], None )


Ramit
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.  

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


Thread

Unpaking Tuple sajuptpm <sajuptpm@gmail.com> - 2012-10-06 03:09 -0700
  Re: Unpaking Tuple Chris Rebert <clp2@rebertia.com> - 2012-10-06 03:27 -0700
    Re: Unpaking Tuple Roy Smith <roy@panix.com> - 2012-10-06 08:46 -0400
      Re: Unpaking Tuple Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-10-06 15:08 +0000
        Re: Unpaking Tuple Thomas Bach <thbach@students.uni-mainz.de> - 2012-10-08 23:45 +0200
        RE: Unpaking Tuple "Prasad, Ramit" <ramit.prasad@jpmorgan.com> - 2012-10-08 22:21 +0000
          Re: RE: Unpaking Tuple Bob Martin <bob.martin@excite.com> - 2012-10-09 07:07 +0100
            Re: Unpaking Tuple Dave Angel <d@davea.name> - 2012-10-09 02:29 -0400
              Re: Unpaking Tuple Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2012-10-09 10:22 +0300
                Re: mangled messages (was: Unpaking Tuple) Tim Chase <python.list@tim.thechases.com> - 2012-10-09 05:48 -0500
                Re: mangled messages (was: Unpaking Tuple) Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2012-10-09 15:05 +0300
                Re: mangled messages Tim Chase <python.list@tim.thechases.com> - 2012-10-09 09:26 -0500
            Re: Unpaking Tuple Grant Edwards <invalid@invalid.invalid> - 2012-10-09 14:11 +0000
            RE: RE: Unpaking Tuple "Prasad, Ramit" <ramit.prasad@jpmorgan.com> - 2012-10-09 16:40 +0000
            Re: Unpaking Tuple Robert Miles <robertmiles@teranews.com> - 2012-11-18 19:14 -0600
            Re: Unpaking Tuple Hans Mulder <hansmu@xs4all.nl> - 2012-11-19 02:56 +0100
  Re: Unpaking Tuple woooee <woooee@gmail.com> - 2012-10-07 10:58 -0700
    Re: Unpaking Tuple Terry Reedy <tjreedy@udel.edu> - 2012-10-07 16:03 -0400

csiph-web