Mar-02-2017, 07:29 PM
Is it a function to add two vectors? List comprehension could be rewritten as a for loop:
Example run:
def v_add(v, w): result = [] for v_i, w_i in zip(v, w): result.append(v_i + w_i) # print only to show what is going on print("v_i = {}, w_i = {}, result = {}".format(v_i, w_i, result)) return resultzip() is a built-in function that "zips" its argument(s), it yields tuples of i-th elemens of its arguments - for example when iterating over zip([1,2,3], [4,2,2]), it gives (1,4), (2, 2), (3, 2). Those tuples are unpacked into v_i and w_i variables.
Example run:
Output:>>> v = [1, 2, 3]
>>> w = [4, 2, 2]
>>> v_add(v, w)
v_i = 1, w_i = 4, result = [5]
v_i = 2, w_i = 2, result = [5, 4]
v_i = 3, w_i = 2, result = [5, 4, 5]
[5, 4, 5]