#-------------------------------------------------------------------------------
#  LinearSearch.py
#  Three ways to do a linear search.
#-------------------------------------------------------------------------------

def linSearch_list(x, L):
   IndexList = []
   for i,v in enumerate(L):
      if x==v:
         IndexList.append(i)
      # end
   # end
   return IndexList
# end

def linSearch_print(x, L):
   for i,v in enumerate(L):
      if x==v:
         print(i)
      # end
   # end
# end

def linSearch_yield(x, L):
   for i,v in enumerate(L):
      if x==v:
         yield i
      # end
   # end
# end

#-------------------------------------------------------------------------------
if __name__=='__main__':
   
   A = [3,5,7,6,1,9,6,5,5,8,1,2,3,5,3,2,0,9,0,0,7,7,7,6,4,3,2,3,4,5,4,3,2,1,2,3,8,9]
   print(A)

   print()
   L = linSearch_list(5, A)
   for k in L: print(k)

   print()
   N = linSearch_print(5, A)

   print()
   G = linSearch_yield(5, A)
   for k in G: print(k)
   print()

   print(type(L))
   print(L)
   print()

   print(type(N))
   print(N)
   print()

   print(type(G))
   print(G)
   print()

# end
      