The difficulty of finding a Python 3.x implementation of the familiar C for-loop

I do not understand Python and start with Python 3.4.

I read the Python 3.x documentation on loop idioms and have not found a way to create the familiar C family for -loop, i.e.

   for (i = 0; i < n; i++) {
       A[i] = value;
   }

Writing a for loop like this in Python seems almost impossible by design. Does anyone know the reason Python iteration over a sequence follows a pattern like

for x in iterable: # e.g. range, itertools.count, generator functions
    pass;

Is it more efficient, convenient or reduces the exclusion of an exception from abroad?

+4
source share
8 answers
for lower <= var < upper:

C-. " ", PEP 284 , :

, , () . " (15 ) () , * * . , ( range() , Python 3.0).

, for lower <= var < upper: .

, C-? , range([start,]end[,step]).

for i in range(0,len(blah),3):
    blah[i] += merp #alters every third element of blah
                    #step defaults to 1 if left off

enumerate, , :

for i,j in enumerate(blah):
    merp[j].append(i)

( !) , zip (: itertools.izip itertools.izip_longest)

for i,j in zip(foo,bar):
    if i == j: print("Scooby-Doo!") 

, , while

i = 0
while i < upper:
    A[i] = b
    i++

: PEP 276, int , .

+7

range(n) :)

for i in range(n):
    A[i] = value

( ) while. ,

i = 0
while i < n:
    A[i] = value
    i += 1
+5

foreach- , , . , , , , , (, set), , .

python :

for i, x in enumerate(iterable):

i - , x - iterable[i].

+5

range().

for i in range(n):
    A[i] = value

(n), 0 - n (, ), . :

range(1, 5)

1, 2, 3, 4 5.

+2

-, python C ( , , ):

for i in range(some_end_value):
    print(i)
# or the many times preferred
for i, elem in enumerate(some_list):
    print("i is at {0} and the value is {1}".format(i, elem))

, python , , foreach - , / , , java :

for (int i: someArray) {
    system.out.println(i) // which would print the current item of an integer array
}

(foreach (int i in someArray)) (for (auto &i: int)) foreach. c, , foreach.

, , dicts . , - .

+2

Python - , C, , "", - "". C , , , "" . - C, - , , Python, .

+2

C- python - . (stop), start, stop step, . , , C-style :

range(start, stop[, step])

for (i = 0; i < 10; i++)
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for (i = 1; i < 11; i++)    
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for (i = 0; i < 30; i=i+5)
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
for (i = 0; i < 10; i=i+3)
>>> range(0, 10, 3)
[0, 3, 6, 9]
for (i = 0; i > -10; i--)
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

https://docs.python.org/2/library/functions.html#range

+2

C-:

for (i = 0; i < n; i++) A[i] = value; 

i.e., , A numpy:

A[:] = value

, len(A) > n,

A[:n] = value

Python n:

A = [value] * n #NOTE: all items refer to the *same* object

:

A[:n] = [value]*n #NOTE: it may grow if necessary

:

for i in range(n): A[i] = value

The pythonic way of listing all values ​​with corresponding indices when using values:

for index, item in enumerate(A):
    A[index] = item * item

You can also write code using a list comprehension:

A = [item * item for item in A] #NOTE: the original list object may survive

Do not try to write C in Python.

+1
source

All Articles