面试题答案
一键面试可以使用itertools.zip_longest
函数来解决这个问题,它会将两个可迭代对象按最长的长度进行配对,缺失的值用fillvalue
填充,代码如下:
import itertools
list1 = [1, 2, 3]
list2 = ['a', 'b']
new_list = list(itertools.zip_longest(list1, list2, fillvalue=None))
print(new_list)
处理思路:
- 当两个列表长度一致时,
itertools.zip_longest
可以正常将两个列表的对应位置元素配对成元组。 - 当两个列表长度不一致时,
itertools.zip_longest
会按照最长的列表长度进行配对,短列表缺失的位置用指定的fillvalue
(这里设置为None
)填充,这样既保证了两个列表元素都能参与配对,又能清晰表示出缺失值的情况。