Pythonic way to iterate over a shifted list of tuples

Viewed 257

Given a list L = [('a',3),('b',4),('c',14),('d',10)], the desired output is the first item from a tuple and the second item from the next tuple, e.g.:

a 4
b 14
c 10

Straightforward but unpythonic way would be

for i in range(len(L)-1):
    print(L[i][0], L[i+1][1])


Alternatively, this is what I've came up with:

for (a0,a1),(b0,b1) in zip(L,L[1:]):
    print(a0,b1)

but it seems to be wasteful. Is there a standard way to do this?

4 Answers
Related