有这样一种场景,有三个列表a、b、c。我们想要把每一个列表中的第一个元素取出来分为一组,第二元素取出来分为一组、第三个元素取出来分为一组,以此类推。该怎么做呢?你可以自己想一想,再来看下面的实现过程。
def zip(*args, fillvalue=None):
max_length = max([len(lst) for lst in args])
result = []
for i in range(max_length):
result.append([
args[k][i] if i < len(args[k]) else None for k in range(len(args))])
return result
调用函数:
zip(['a', 'b'], [1, 2], [True, False])
zip(['a'], [1, 2], [True, False])
zip(['a'], [1, 2], [True, False], fill_value = '_')
输出结果:
[['a', 1, True], ['b', 2, False]]
[['a', 1, True], [None, 2, False]]
[['a', 1, True], ['_', 2, False]]
如果你觉得还不错,请分享给更多朋友,一起学习。顺手点个好看,也是对我的一种鼓励。