[Tutor] Query regarding output

shubham goyal skgoyal721 at gmail.com
Thu Jun 29 09:55:38 EDT 2017


Thanks all
Great place to learn Python.

On Jun 29, 2017 7:24 PM, "shubham goyal" <skgoyal721 at gmail.com> wrote:

Thankyou all.

Great place to learn.

On Jun 29, 2017 5:55 PM, "Mats Wichmann" <mats at wichmann.us> wrote:

> On 06/29/2017 03:02 AM, Alan Gauld via Tutor wrote:
> > On 29/06/17 03:14, shubham goyal wrote:
> >
> >> This Question is asked in some exam. i am not able to figure it out.
> >>
> >> a = [0, 1, 2, 3]
> >> for a[-1] in a:
> >>     print(a[-1])
> >>
> >> its giving output 0 1 2 2
> >>
> >> it should be 3 3 3 3 as a[-1] belongs to 3.
> >> can anyone help me figuring it out.
> >
> > This is quite subtle and it took me a few minutes to figure
> > it out myself.
> >
> > It might be clearer if we print all of 'a' instead
> > of a[-1]:
> >
> >>>> for a[-1] in a:
> > ...    print(a)
> > ...
> > [0, 1, 2, 0]
> > [0, 1, 2, 1]
> > [0, 1, 2, 2]
> > [0, 1, 2, 2]
> >
> > What is happening is that a[-1] is being assigned the value
> > of each item in a in turn. The final iteration assigns a[-1]
> > to itself, thus we repeat the 2.
>
>
> Ugh.  I guess on an exam where they're trying to see if you can tease it
> out, as you may one day have to debug such a sequence... but don't write
> code like that.  One of the reasons people like "functional programming"
> is it avoids these kind of side effects.
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>


More information about the Tutor mailing list