Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich zwei Listen potenziell unterschiedlicher Länge in Python effizient verschachteln?

Wie kann ich zwei Listen potenziell unterschiedlicher Länge in Python effizient verschachteln?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 08:43:12515Durchsuche

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

Pythonic Interlacing: Listen abwechselnd kombinieren

In Python bedeutet das Interlacing zweier Listen das Erstellen einer neuen Liste, die Elemente aus beiden Listen abwechselt. Um dies zu erreichen, berücksichtigen Sie die folgenden Szenarien:

Listen mit übereinstimmender Länge

Wenn beide Listen die gleiche Anzahl von Elementen haben, besteht eine einfache Lösung darin, Slicing zu verwenden:

list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = [None] * (len(list1) + len(list2))
result[::2] = list1
result[1::2] = list2
print(result)

Dies führt zur gewünschten Ausgabe:

['f', 'hello', 'o', 'world', 'o']

Längenübereinstimmung Listen

Wenn die Eingabelisten unterschiedliche Längen haben, ist zusätzliche Logik erforderlich:

Überschüssige Elemente am Ende belassen

Überschüssige Elemente aus der längeren Liste am Ende belassen , verwenden Sie diesen Ansatz:

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

Elemente gleichmäßig verteilen

Um überschüssige Elemente gleichmäßig zu verteilen Verwenden Sie innerhalb der Interlaced-Liste diese Methode:

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

Das obige ist der detaillierte Inhalt vonWie kann ich zwei Listen potenziell unterschiedlicher Länge in Python effizient verschachteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn