Unpaking Tuple

Prasad, Ramit ramit.prasad at jpmorgan.com
Tue Oct 9 12:40:17 EDT 2012


Bob Martin wrote
> in 682592 20121008 232126 "Prasad, Ramit" <ramit.prasad at jpmorgan.com> wrote:
> >Thomas Bach wrote:=0D=0A> Hi there,=0D=0A> =0D=0A> On Sat, Oct 06, 2012 at =
> >03:08:38PM +0000, Steven D'Aprano wrote:=0D=0A> >=0D=0A> > my_tuple =3D my_=
> >tuple[:4]=0D=0A> > a,b,c,d =3D my_tuple if len(my_tuple) =3D=3D 4 else (my_=
> >tuple + (None,)*4)[:4]=0D=0A> >=0D=0A> =0D=0A> Are you sure this works as y=
> >ou expect? I just stumbled over the following:=0D=0A> =0D=0A> $ python=0D=
> >=0A> Python 3=2E2=2E3 (default, Jun 25 2012, 23:10:56)=0D=0A> [GCC 4=2E7=2E=
> >1] on linux2=0D=0A> Type "help", "copyright", "credits" or "license" for mo=
> >re information=2E=0D=0A> >>> split =3D ['foo', 'bar']=0D=0A> >>> head, tail=
> >=3D split if len(split) =3D=3D 2 else split[0], None=0D=0A> >>> head=0D=0A=
> >> ['foo', 'bar']=0D=0A> >>> tail=0D=0A> >>>=0D=0A> =0D=0A> I don't get it! =
> >Could someone help me, please? Why is head not 'foo'=0D=0A> and tail not 'b=
> >ar'?=0D=0A> =0D=0A> Regards,=0D=0A> 	Thomas=0D=0A> --=0D=0A=0D=0AI think yo=
> >u just need to wrap the else in parenthesis so the=0D=0Aelse clause is trea=
> >ted as a tuple=2E Without the parenthesis =0D=0AI believe it is grouping th=
> >e code like this=2E=0D=0A=0D=0Ahead, tail =3D (split if len(split) =3D=3D 2=
> >else split[0] ), None=0D=0A=0D=0AYou want:=0D=0Ahead, tail =3D split if le=
> >n(split) =3D=3D 2 else (split[0], None )=0D=0A=0D=0A=0D=0ARamit=0D=0AThis e=
> >mail is confidential and subject to important disclaimers and=0D=0Aconditio=
> >ns including on offers for the purchase or sale of=0D=0Asecurities, accurac=
> >y and completeness of information, viruses,=0D=0Aconfidentiality, legal pri=
> >vilege, and legal entity disclaimers,=0D=0Aavailable at http://www=2Ejpmorg=
> >an=2Ecom/pages/disclosures/email=2E
> 
> How does one unpack this post?  ;-)
> --

Hmm, I am not sure why that happened. For reference: 
http://mail.python.org/pipermail/python-list/2012-October/632603.html
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.  



More information about the Python-list mailing list