Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Given an array of numbers. Create another array that contains
- * the product of all the members in the array except the current
- * element. For example, if you have an array of 3 elements such as:
- *
- * A[0] = 2
- * A[1] = 4
- * A[2] = 6
- *
- * Then the resulting array will be
- * B[0] = 24
- * B[1] = 12
- * B[2] = 8"""
- #
- # tempi per 100k ripetizioni con l = range(1, 10)
- #
- # ludo ~1.36s
- [reduce(lambda x, y: x*y, [el for j, el in enumerate(l) if j != i]) for i in range(len(l))]
- # andrea ~0.88s ma osserva Carlo che si pianta per numeri non interi
- [reduce(int.__mul__, l[:i]+l[i+1:], 1) for i in range(len(l))]
- # C8E ~0.43s ma osserva Andrea che salta se c'è uno 0 nella lista
- import operator; [reduce(operator.mul, l)/x for i, x in enumerate(l)]
- # MB #1 ~1.3s
- from operator import mul; [reduce(mul, (i for n,i in enumerate(l) if n!=m)) for m in range(len(l))]
- # MB #2 ~1.62s
- [reduce(lambda a,b: a*b, (i for n,i in enumerate(l) if n!=m)) for m in range(len(l))]
- # C8E+Andrea ~0.58s
- import operator; [reduce(operator.mul, l[:i] + l[i+1:]) for i, _ in enumerate(l)]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement