我需要制作一个“生成器函数”,该函数将生成2个列表,并将两个列表中的数字按索引连接到一个元组中。例如:
l1 = [3, 2, 1]
l2 = [4, 3, 2]
第一次迭代(3, 4)
的结果将为,第二次迭代的结果将为(2, 3)
第三个,(1, 2)
并且此外,列表中的一个可能比另一个列表具有更多的数字。在那种情况下,我需要写条件“如果列表之一在迭代时结束,则不再执行任何迭代。” (使用try, except
)
我知道,生成器函数使用yield
而不是return
,但是我不知道如何编写此功能...
def generate_something(l1, l2):
l3 = tuple(tuple(x) for x in zip(l1, l2))
return l3
输出是
((3, 4), (2, 3), (1, 2))
它可以工作,但这不是geterator函数,不yield
存在,也不存在第一次,第二次等迭代。我希望你可以帮助我...
您可以创建自己的生成器:
def iterate_lists(l1,l2):
for i,item in enumerate(l1):
yield l1[i],l2[i]
或作为生成器理解的变量:
iterate_lists = (li[i],l2[i] for i,item in enumerate(l1))
有关在lengthes的arent等于其并不清楚我到底要怎么做,没有你可以去小名单上的消息......只是改变了for i,item in enumerate(l1)
与for i in range(min((len(l1),len(l2)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句