# Python Challenge Answers
Challenges for 10-26-18 - python answers
```
# cumulative sum
x=[3,10,4,12,55]
cs=[0]*5
for i in range(0,len(x)):
cs[i]=sum(x[0:(i+1)])
print(cs)
x=[3,10,4,12,55]
cs=list()
for i in range(0,len(x)):
cs.append(sum(x[0:(i+1)]))
print(cs)
#how long to 5 5's
x=[5,3,2,5,5,1,2,5,3,5,1,5,1]
count=0
i=0
while count < 5:
if x[i]==5:
count+=1
i+=1
print(i)
# answers for Lecture 11 extra practice
import pandas as pd
# 0 - calculate sum of female and male wages in wages.csv
wages=pandas.read_csv("wages.csv",header=0,sep=",")
femaleSum=0
maleSum=0
for i in range(0,len(wages),1):
if wages.gender[i]=="female":
femaleSum=femaleSum+wages.wage[i]
else:
maleSum=maleSum+wages.wage[i]
femaleSum
maleSum
sum(wages.gender=="female")
sum(wages.gender=="male")
wages.tail()
# find runs
# load file
findRuns=pd.read_csv("findRuns.txt",header=None,sep="\t")
# create a variable out that is currently undefined
out=pd.DataFrame(columns=['startIndex','runLength'])
# I will use this variable cur to hold onto the previous number in the vector;
# this is analagous to using findRuns[i-1]
cur=findRuns.iloc[0,0]
#cur=findRuns[i-1]
# this is a counter that I use to keep track of how long a run of repeated values is;
# if there are not repeated values than this count equals 1
count=1
# loop through each entry of our vector (except the 1st one, which we set to cur above)
for i in range(1,50,1):
# test if the ith value in the vector findRuns equals the previous (stored in cur)
if findRuns.iloc[i,0]==cur:
# test whether count is 1 (we aren't in the middle of a run) or >1 (in the middle of a run)
if count==1:
# if the ith value in the vector equals the previous (stored in cur) and count is 1, we
# are at the beginning of a run and we want to store this value (we temporarily store it in 'start')
start=(i-1)
# we add one to count because the run continued based on the ith value of findRuns being equal to
# the previous (stored in cur)
count=count+1
# if the ith value in findRuns is not the same as the previous (stored in cur) we either are not in a run
# or we are ending a run
else:
# if count is greater than 1 it means we were in a run and must be exiting one
if count>1:
# add a row to 'out' that will hold the starting positions in the first column and the length
# of runs in the second column; this appends rows to out after finding and counting each run
out.loc[len(out)]=[start,count]
# reset count to 1 because we just exited a run
count=1
# remember cur holds the previous element in findRuns, so we need to update this after each time
# we go through the for loop
cur=findRuns.iloc[i,0]
cur
out
```