在 Python 中,交錯兩個清單意味著建立一個新清單來交替兩個清單中的元素。要實現此目的,請考慮以下場景:
如果兩個列表具有相同數量的元素,一個簡單的解決方案是使用切片:
list1 = ['f', 'o', 'o'] list2 = ['hello', 'world'] result = [None] * (len(list1) + len(list2)) result[::2] = list1 result[1::2] = list2 print(result)
這將產生所需的輸出:
['f', 'hello', 'o', 'world', 'o']
當輸入列表的長度不同時,需要額外的邏輯:
將較長列表中的多餘元素保留在末尾,使用這種方法:
def interlace(list1, list2): result = [] i, j = 0, 0 # indices for list1 and list2 while i < len(list1) and j < len(list2): result.append(list1[i]) result.append(list2[j]) i += 1 j += 1 # Add remaining elements from the longer list result.extend(list1[i:] if len(list1) > len(list2) else list2[j:]) return result
分散多餘的元素元素均勻地分佈在交錯列表中,使用此方法:
def interlace_evenly(list1, list2): shorter_list = list1 if len(list1) < len(list2) else list2 longer_list = list1 if len(list1) > len(list2) else list2 result = [] # Intersperse elements of the shorter list for i in range(len(shorter_list)): result.append(shorter_list[i]) result.append(longer_list[i % len(longer_list)]) # Add remaining elements from the longer list result.extend(longer_list[len(shorter_list):]) return result
以上是如何在 Python 中有效地交錯兩個可能不同長度的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!