En Python, entrelacer deux listes signifie créer une nouvelle liste qui alterne les éléments des deux listes. Pour y parvenir, envisagez les scénarios suivants :
Si les deux listes ont un nombre égal d'éléments, une solution simple consiste à utiliser le découpage :
list1 = ['f', 'o', 'o'] list2 = ['hello', 'world'] result = [None] * (len(list1) + len(list2)) result[::2] = list1 result[1::2] = list2 print(result)
Cela produira le résultat souhaité :
['f', 'hello', 'o', 'world', 'o']
Lorsque les listes d'entrée ont des longueurs différentes, une logique supplémentaire est requise :
Pour laisser les éléments en excès de la liste plus longue à la fin , utilisez cette approche :
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
Pour répartir uniformément les éléments en excès dans la liste entrelacée, utilisez cette méthode :
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!