我正在编写一个生成器函数,它给我字母字符,就像这样,
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