我正在尝试使用迭代器在Python中构建一个“skipper”。在
其想法是考虑到以下因素:
' '.join([str(i) for i in skippy([1,'a','b','b',2,1,1,1,'c','d','b'])
我们得到了
^{pr2}$作为输出。规则是每次我们碰到一个整数x时,我们跳过iterable中的下面的x项。在
到目前为止,我已经:
def skippy(it):
p = 0
for x in it:
if type(x) == int:
for x in range(x):
p = next(it)
yield p
但这并不像预期的那样有效,有什么解决办法吗?在
您可以跳过(没有双关语)收益并执行基本操作:
您可以创建自己的skipper迭代类并定义下一个函数来执行您想要的操作
不确定使用单独的
p
和x
来达到什么目的。你可以这样做:如果想直接传入一个列表,就需要对参数调用
iter
,因为列表是一个iterable,而不是迭代器,而且只能在迭代器上调用next
。在相关问题 更多 >
编程相关推荐