On 8 October 2012 22:45, Thomas Bach <span dir="ltr"><<a href="mailto:thbach@students.uni-mainz.de" target="_blank">thbach@students.uni-mainz.de</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

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

<div><font face="courier new, monospace">>>> head, tail</font></div><div><font face="courier new, monospace">('ab', None)</font></div><div><font face="courier new, monospace">>>> head, tail = (split if len(split) == 2 else split[0]), None</font></div>

<div><font face="courier new, monospace">>>> head, tail</font></div><div><font face="courier new, monospace">('ab', None)</font></div><div><font face="courier new, monospace">>>> head, tail = split if len(split) == 2 else (split[0], None)</font></div>

<div><font face="courier new, monospace">>>> head, tail</font></div><div><font face="courier new, monospace">('a', 'b')</font></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Regards,<br>
        Thomas<br></blockquote></div>