Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.51 KB | None | 0 0
  1. from functools import reduce
  2.  
  3.  
  4. def vector_items(vec):
  5. vec_iter = iter(vec)
  6. while True:
  7. val, n = next(vec_iter), next(vec_iter)
  8. for _ in range(n):
  9. yield val
  10.  
  11.  
  12. def scalar_product(vec1, vec2):
  13. return reduce(lambda acc, i: acc + i[0] * i[1],
  14. zip(vector_items(vec1), vector_items(vec2)),
  15. 0)
  16.  
  17. if __name__ == "__main__":
  18. first_list = [1, 4, 3, 4, 5, 3, 1, 5]
  19. second_list = [3, 5, 4, 6, 5, 5]
  20. print(scalar_product(first_list, second_list))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement