[Tutor] Query regarding output
anupama srinivas murthy
anupama.2312.bmsit at gmail.com
Thu Jun 29 06:35:45 EDT 2017
for a[x] in a:
print(a)
Except for when x = 0, a[x] never takes on its original value throughout
the iterations
So for x = 0, we get:
[0, 1, 2, 3]
[1, 1, 2, 3]
[2, 1, 2, 3]
[3, 1, 2, 3]
For x = 1:
[0, 0, 2, 3]
[0, 0, 2, 3]
[0, 2, 2, 3]
[0, 3, 2, 3]
For x = 2:
[0, 1, 0, 3]
[0, 1, 1, 3]
[0, 1, 1, 3]
[0, 1, 3, 3]
How is the array being transformed?
On 29 June 2017 at 14:32, Alan Gauld via Tutor <tutor at python.org> 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.
>
> Another way to see it is to convert the for loop to
> a while loop:
>
> for variable in collection:
> process(variable)
>
> becomes
>
> collection = [some sequence]
> index = 0
> while index < len(collection):
> variable = collection[index]
> process(variable)
> index += 1
>
> Now substitute your values:
>
> collection = [0,1,2,3]
> index = 0
> while index < len(collection):
> collection[-1] = collection[index]
> print(collection[-1])
> index += 1
>
> Does that help?
>
> --
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> http://www.amazon.com/author/alan_gauld
> Follow my photo-blog on Flickr at:
> http://www.flickr.com/photos/alangauldphotos
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
--
Thank you
Anupama
More information about the Tutor
mailing list