use*_*095 2 python generator lazy-evaluation
假设我有一个清单
xs = [0,1,2,3]
[some_function(current, next) for current, next in zip(xs, xs[1:])]
Run Code Online (Sandbox Code Playgroud)
我想迭代这个列表的对(当前,下一个).澄清zip创建列表[(0,1),(1,2),(2,3)]
问题是,如果xs是生成器而不是列表来实现这一点,我需要从中创建一个列表,这肯定不是最佳解决方案.
您可以使用itertools.tee(iterable, n=2)它从一个迭代器创建多个独立迭代器.
my_iter, next_iter = tee(myiter)
next(nextiter)
[some_function(current, ne) for current, ne in zip(myiter, nextiter)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |