def merge2(iter1,iter2):
""" on input iter1, iter2, two non-empty sorted iterators, not
necessarily infinite, produces the sorted merge of the two iterators """
left=next(iter1)
right=next(iter2)
while True:
if left<right:
yield(left)
try:
left=next(iter1)
except StopIteration: # iter1 is exhausted
yield(right) # in my question I refer to this yield
for right in iter2:
yield(right)
break
else:
yield(right)
try:
right=next(iter2)
except StopIteration: # iter2 is exhausted
yield(left)
for left in iter1:
yield(left)
break
基本的了解,使用后yield(right)
(我上面所指出的),没有程序所提供的价值,所以我现在“走出去”的merge2功能的,所以如何for
(即紧接下面)到达?关于产量
'yield'与'return'不一样。发生器暂停,当控制返回时(调用'generator.next()'),控制恢复。 –
你怎么使用这个发生器功能? – M4rtini
用'python'标签查看答案最高的答案。 –