给定一个列表 L = [('a',3),('b',4),('c',14),('d',10)]
,
所需的输出是元组的第一项和下一个元组的第二项,例如:
a 4
b 14
c 10
直接但非 pythonic 的方式是
for i in range(len(L)-1):
print(L[i][0], L[i+1][1])
或者,这就是我想出的:
for (a0,a1),(b0,b1) in zip(L,L[1:]):
print(a0,b1)
但是好像有点浪费。有没有标准的方法来做到这一点?
最佳答案
我个人认为这两个选项都很好可以提取项目并加入它们:
pairs = zip(map(itemgetter(0), L), map(itemgetter(1), L[1:]))
# [('a', 4), ('b', 14), ('c', 10)]
关于迭代元组移位列表的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056530/