示例:git
输入:github
输出:数组
def interleave_by_loop(list1, list2): if len(list1) != len(list2): raise ValueError("传入的list的长度须要相等") new_list = [] for index, value in enumerate(list1): new_list.append(value) new_list.append(list2[index]) return new_list list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] if __name__ == "__main__": print(interleave_by_loop(list1, list2)) # [1, 'a', 2, 'b', 3, 'c']
上面给出了一个简单的示例,就是经过一次带有索引for循环
每次循环中将两个list中对应的元素插入新的list。app
上面的方法多是个比较通用的作法,可是在Python中能够写的简洁一点函数
def interleave(list1, list2): return [val for pair in zip(list1, list2) for val in pair] list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] if __name__ == "__main__": print(interleave(list1, list2)) # [1, 'a', 2, 'b', 3, 'c']
这里,咱们首先观察下代码,首先oop
其实,咱们还能够修改下咱们的函数,使得咱们的函数更加具备通用性google
def interleave(*args): return [val for pair in zip(*args) for val in pair] list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] list3 = ['github', 'google.com', 'so'] if __name__ == "__main__": print(interleave(list1, list2, list3)) # [1, 'a', 'github', 2, 'b', 'google.com', 3, 'c', 'so']
这样咱们的函数就能够接受任意多个列表了!code