在python中跳过产量 [英] Skipping yield in python

查看:261
本文介绍了在python中跳过产量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个生成器,它带有一个 iterable 和一个整数 n 。例如,如果我打电话给我的发电机:

I'm writing a generator that takes an iterable and an integer n. For example if I call my generator:

generator('abcdefg',2)

然后它应该产生 a d g 跳过2个字母。

then it should yield a, d, g skipping 2 letters.

当我打电话给 iter(可迭代)然后使用 yield next yield 会自动跳过1个字母。我如何告诉python跳过让步,所以我可以跳过 n 字母?

When I call iter(iterable) then use yield next the yield automatically skips 1 letter. How would I tell python to skip yielding so I can skip n letters?

推荐答案

这可能是你想要的

def generator(string, skip):
    for i,c in enumerate(string):
        if i % (skip+1)==0:
            yield c

这实际上并没有跳过yield语句,即每个yield都被执行。但是,仅在字符串字符的迭代的固定间隔调用yield。

This doesn't actually "skip" yield statements, that is every yield is executed. However, yield is only called at fixed intervals of the iteration over string characters.

这篇关于在python中跳过产量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆