可以使用Python的yield关键字来编写生成器函数,其中使用两个循环来交替生成两个列表的值。具体实现方法如下:
def alternating_lists(list1, list2):
i = 0
j = 0
while True:
if i < len(list1):
yield list1[i]
i += 1
if j < len(list2):
yield list2[j]
j += 1
if i == len(list1) and j == len(list2):
break
上述代码中,首先定义了一个变量i和j,分别代表两个列表中的元素下标。然后使用一个While循环来不断生成列表中的元素,直到两个列表的所有元素都生成完毕。在循环体中,使用if语句判断i和j是否小于列表的长度,如果小于则使用yield关键字来生成这两个列表的元素。最后,如果i和j都已经达到列表的长度,就跳出循环。
我们可以通过调用该函数来获取交替生成的列表元素:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3, 4]
for element in alternating_lists(list1, list2):
print(element)
调用以上代码输出的结果为: a 1 b 2 c 3 4
下一篇:编写生成字典的函数的定义