python - 获取前一个元素的最pythonic方式

标签 python iterator

我想要一个类似enumerate 的迭代器函数,它产生(previous_element, current_element) 对。也就是说,假设 iter

i0, i1, i1, ...

我希望offset(iter)产生

(None, i0), (i0, i1), (i1, i2) ...

最佳答案

简单(显而易见)的解决方案怎么样?

def offset(iterable):
    prev = None
    for elem in iterable:
        yield prev, elem
        prev = elem

关于python - 获取前一个元素的最pythonic方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076270/

相关文章:

python - Django ORM 查询空 FileFields

python - 如何返回字典列表中不同键的数量长度而不包括已经见过的键?

python - 使用特定的类/函数预加载 Jupyter Notebook

Python 迭代器追加逻辑

python - "can only concatenate str (not "builtin_function_or_method") 到 str"是什么意思?

python - 如何根据其他列表中的项目匹配来选择子列表中的外部项目?

c++ - 将 map 数据的 vector 复制到 vector 图中

c++ - 为什么我不能递增 std::unordered_map 迭代器?

java - 为什么listiterator中的hasPrevious()和add()组合会进入无限循环,而hasNext()和add()则不会?

javascript - 检查是否有任何标签具有特定的内部 HTML