I have a list of values and I want to get them by pairs and perform an operation with this pair… Any operation. Can be subtraction, since I am more interested in knowing the best way to get the variables by pairs for this loop.
vals = [1, 3, 3, 6, 8, 12]
And I want to perform operations in pairs:
3-1 , 3-3, 6-3, 8-6, 12-8
And I wrote this code:
for i in range( len(vals)-1 ): j = i+1 val1, val2 = vals[i], vals[j] r = val2 - val1 print(r)
It returns 2, 0, 3, 2, 4.
Is there a way to write this operation with a cleaner code?
One option is to use
zip to combine each item with the following one in a single iterable, which lets you do something like:
>>> vals = [1, 3, 3, 6, 8, 12] >>> print(*(j - i for i, j in zip(vals, vals[1:]))) 2 0 3 2 4