Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich zwei Listen potenziell unterschiedlicher Länge in Python effizient verschachteln?
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:
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']
Wenn die Eingabelisten unterschiedliche Längen haben, ist zusätzliche Logik erforderlich:
Ü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
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!