我正在编写一个生成器函数,它会给我字母字符,就像这样,
def gen_alphaLabels():
a = range(65,91)
for i in a:
yield chr(i)
k = gen_alphaLabels()
for i in range(26):
print k.next(),
这产生了,
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
这行得通....
我会跳过 donotInclude 列表中的一些字符。我可以在生成器外部执行此操作,就像这样,
k = gen_alphaLabels()
donotInclude = ['D','K','J']
for i in range(26):
r = k.next()
if r not in donotInclude:
print r,
这会产生跳过“D”、“K”和“J”的预期结果
A B C E F G H I L M N O P Q R S T U V W X Y Z
有没有办法在生成器函数中包含与跳过字符相关的逻辑?一些事情沿着
def gen_alphaLabels():
a = range(65,91)
for i in a:
r = chr(i)
if r in donotInclude:
yield self.next()
else:
yield r
最佳答案
不使用 continue + 稍微缩短代码:
def gen_alphaLabels(donotInclude):
for i in range(65,91):
char = chr(i)
if char not in donotInclude:
yield char
关于python - 跳过生成器函数中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620497/