快速而丑陋的解决方案是这样的(不要使用它!):
for i, item in enumerate(lst):
# here you can use lst[i + 1] as long as i + 1 < len(lst)
但是,不要自己实现列表排序!用于.sort()
就地排序,或者sorted()
如果您想创建一个新列表。关于如何在 python 网站上进行排序,有一个非常好的指南。
如果这不是您的意图.. 除了我在上面发布的循环之外,还有一种更好的方法可以从另一个 SO 问题的列表中迭代块:
import itertools
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return itertools.izip_longest(fillvalue=fillvalue, *args)
你曾经喜欢这样:
for x, y in grouper(2, lst):
# do whatever. in case of an odd element count y is None in the last iteration