packing unpacking depends on order.

Ian Kelly ian.g.kelly at gmail.com
Wed Sep 2 20:06:32 CEST 2015


On Wed, Sep 2, 2015 at 11:42 AM, Terry Reedy <tjreedy at udel.edu> wrote:
> On 9/2/2015 6:01 AM, Antoon Pardon wrote:
>>
>>
>>>>> a = [1, 2, 3, 4, 5]
>>>>> b = 1
>>>>> b, a[b] = a[b], b
>>>>> a
>>
>> [1, 2, 1, 4, 5]
>>>>>
>>>>> a = [1, 2, 3, 4, 5]
>>>>> b = 1
>>>>> a[b], b = b, a[b]
>>>>> a
>>
>> [1, 1, 3, 4, 5]
>>
>> I think I understand how it gets these results
>> but I'm not really happy with them. I think python
>> should give the second result in both cases.
>
>
> I do not want the choice taken away from me.

I do. I think the former behavior is surprising, and that relying on
it would result in confusing, hard-to-read code. If you really want
the former, you can easily reproduce it with:

temp = a[b]
b, a[temp] = temp, b


More information about the Python-list mailing list