Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Iterating over arrays in Python 3

I haven't been coding for awhile and trying to get back into Python. I'm trying to write a simple program that sums an array by adding each array element value to a sum. This is what I have:

def sumAnArray(ar):     theSum = 0     for i in ar:         theSum = theSum + ar[i]     print(theSum)     return theSum 

I get the following error:

line 13, theSum = theSum + ar[i] IndexError: list index out of range 

I found that what I'm trying to do is apparently as simple as this:

sum(ar) 

But clearly I'm not iterating through the array properly anyway, and I figure it's something I will need to learn properly for other purposes. Thanks!

like image 751
q-compute Avatar asked Aug 19 '18 16:08

q-compute


People also ask

Can you loop through an array in Python?

You can use the for in loop to loop through all the elements of an array.

How do you iterate two arrays in Python?

Use the izip() Function to Iterate Over Two Lists in Python It iterates over the lists until the smallest of them gets exhausted. It then zips or maps the elements of both lists together and returns an iterator object. It returns the elements of both lists mapped together according to their index.

How do you iterate over a list in Python?

You can loop through the list items by using a while loop. Use the len() function to determine the length of the list, then start at 0 and loop your way through the list items by referring to their indexes. Remember to increase the index by 1 after each iteration.


1 Answers

When you loop in an array like you did, your for variable(in this example i) is current element of your array.

For example if your ar is [1,5,10], the i value in each iteration is 1, 5, and 10. And because your array length is 3, the maximum index you can use is 2. so when i = 5 you get IndexError. You should change your code into something like this:

for i in ar:     theSum = theSum + i 

Or if you want to use indexes, you should create a range from 0 ro array length - 1.

for i in range(len(ar)):     theSum = theSum + ar[i] 
like image 88
Mr Alihoseiny Avatar answered Oct 05 '22 18:10

Mr Alihoseiny