【发布时间】:2012-11-27 00:24:10
【问题描述】:
可能重复:
Python: Looping through all but the last item of a list
假设我想遍历一个列表。每次我迭代时,我都想使用当前项和下一项来计算一些东西。我可以做类似的事情
mylist = [1, 2, 3, 4]
for i in range(len(mylist)):
try:
compute(mylist[i], mylist[i+1])
except IndexError:
compute(mylist[i])
我也可以
mylist = [1, 2, 3, 4]
for num in mylist:
try:
compute(num, mylist[mylist.index(num)+1])
except IndexError:
compute(num)
这些似乎都不是特别好。有没有更 Pythonic 的方法来做到这一点?
【问题讨论】:
-
您可以尝试使用itertools documentation 中的
pairwise配方。 -
@Wessie:这正是他应该做的......你应该把它变成一个答案。
-
为什么在最后一次迭代中调用
compute时只有一个参数?
标签: python