def alternate(*args):
l = ''
c = 0
while True:
try:
iterable = args[c]
i = iter(iterable)
l = l + next(i)
c = c + 1
except:
break
yield l
备用生成器采用任意数量的可迭代项作为参数:它从第一个参数生成第一个值,然后从第二个参数...生成第一个值,然后从最后一个参数生成第一个值;然后是来自第一个参数的第二个值,然后是来自第二个参数的第二个值,...,然后是来自最后一个参数的第二个值;等等。如果任何可迭代项不再产生任何值,则此生成器将不再产生任何值。例如:
for i in alternate('abcde','fg','hijk'):
print(i,end='')
答案是:
afhbgic
当我的职能需要
('abcde','fg','hijk')
它返回
afh
但是正确的答案是
afhbgic
有人可以告诉我如何解决吗?非常感谢!
像这样的解决方案呢?
def alternate(*args):
l = ''
# initialize iterators for each argument
iterators = [iter(it) for it in args]
# iterate over lengths, using iterators
while True:
for it in iterators:
try:
l = l + next(it)
except StopIteration:
return l
return l
result = alternate('abcde','fg','hijk')
print(result) # afhbgic
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句