首頁 > 後端開發 > Python教學 > 如何在 Python 中有效地交錯兩個可能不同長度的清單?

如何在 Python 中有效地交錯兩個可能不同長度的清單?

Linda Hamilton
發布: 2024-12-06 08:43:12
原創
513 人瀏覽過

How Can I Efficiently Interlace Two Lists of Potentially Different Lengths in Python?

Pythonic 交錯:交替組合清單

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板