vanam wrote:
Hi all,
i am beginner to this python language and slowing learning the language by
referring docs.I am trying to understand the for loop i.e., usage of for
loop in python,unlike c where i can give condition in python it is simple

In C, the for-loop is just a hidden 'while'. You can think of

(I dropped the variable declaration stuff, and the cumbersome ";" and printf() syntax for clarity)

a = ["cat", "window","defenestrate"]
for (i=0; i < len(a) ; i = i + 1) {
   x = a[i]

   print x

}


as the equivalent of


a = ["cat", "window","defenestrate"]

i = 0
while i < len(a):
   x = a[i]

   print x

   i = i + 1


Now take a step back.



What are you aiming to achieve here?



If you look carefully, the whole i variable is not relevant. The aim of the code is to get each element of the list a in x (one element with each iteration), and do something with it, in this case, printing it.
To demonstrate, let's sum all values of list b:

b = [1, 2, 3]
total = 0

i = 0
while i < len(b):
   y = b[i]

   total = total + y

   i = i + 1

If you compare both pieces, you see the same pieces of boilerplate code appear:

i = 0
while i < len(<LIST>):
  <VAR> = <LIST>[i]

and

  i = i + 1

This happens at every loop that you write.


The Python developers decided that Python should take care of the boilerplate code. Of the first 3 lines, the interesting pieces are only <LIST> (the list you get values from), and <VAR> (the name of variable where you put each element in with each iteration).
The line at the bottom is always the same, no need to enter that each time.

What you are left with after throwing out the boilerplate code (in pseudo english/Python), for your original problem, is something like

"for each element" x "from the list" a "do"
  print x

which is shortened in Python to

for x in a:
   print x

('in' is ASCII for the 'element of' symbol U+2208).

Not only is this much shorter, it is also more powerful. Python has many rich data structures (such as lists, tuples, sets, dictionaries), and the above construct can be used for all of them.


Sincerely,
Albert

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to