示例: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