List est une structure de données puissante en Python qui peut contenir de nombreux types de valeurs différents. Nous pouvons rencontrer des listes imbriquées où les éléments eux-mêmes sont des listes. Dans ce cas, il peut être crucial d’aplatir la liste et de récupérer les éléments individuels de la hiérarchie. En Python, nous avons des fonctions intégrées - chain(), extend() et append() qui peuvent être utilisées pour résoudre le problème de l'aplatissement d'une liste en un seul élément.
Prenons un exemple :
# Flatten List my_list = [[11, 21, 31], [20, 30, 40], [4, 5, 6], [1, 2, 3]]
# individual element in the list [11, 21, 31, 20, 30, 40, 4, 5, 6, 1, 2, 3]
Tous les exemples utilisent la syntaxe suivante -
itertools.chain()
itertools est le nom du module qui fournit la fonction intégrée chain(). Cette fonction prend plusieurs itérateurs comme arguments et renvoie un seul itérateur.
extend()
extend() est une méthode intégrée à Python utilisée pour ajouter un élément de liste spécifique à la fin de la liste actuelle.
append()
append() est une méthode intégrée à Python qui ajoute des éléments à la fin d'une liste.
[[],[],[]]
La représentation ci-dessus illustre la structure de liste imbriquée.
Le programme utilise des boucles for imbriquées pour parcourir les sous-listes et utilise la méthode append() pour aider
Dans l'exemple suivant, le programme est démarré en définissant une fonction appelée flatten_list qui accepte un argument de lst (pour recevoir la valeur de la liste d'entrée). Créez ensuite une liste vide dans la variable aplatie qui stockera la liste contenant les éléments individuels. Ensuite, utilisez une boucle for imbriquée pour parcourir chaque sous-liste de la liste et utilisez append() pour convertir la sous-liste en un seul élément. Utilisez ensuite la fonction return pour obtenir la nouvelle liste. Créez maintenant la liste Flatten dans la variable nested_list et stockez-la dans la variable f_list en utilisant la même variable que le paramètre dans la fonction appelante. Enfin, nous imprimons le résultat à l'aide de la variable f_list.
def flatten_list(lst): flattened = [] for sublist in lst: for item in sublist: flattened.append(item) return flattened # Create the flattened list nested_list = [[10, 20, 30], [40, 50, 60], [70, 80, 90]] # Calling function used in the variable f_list = flatten_list(nested_list) print("The individual element in the list:\n", f_list)
The individual element in the list: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Ce programme utilise la compréhension de liste où les boucles for imbriquées sont implémentées pour convertir la liste Flatten en éléments uniques.
Dans l'exemple suivant, vous démarrez le programme en définissant une fonction appelée flatten_list qui accepte un paramètre appelé lst qui stocke les valeurs de la liste d'entrée. La fonction est ensuite renvoyée en utilisant une compréhension de liste, avec une boucle for imbriquée itérant dans les sous-listes. Ensuite, créez la liste aplatie et stockez-la dans la variable n_list. Utilisez ensuite la fonction appelante dans la variable f_list et utilisez la même variable dans la fonction print pour obtenir le résultat.
def flatten_list(lst): return [item for sublist in lst for item in sublist] # Create the flatten list n_list = [[11, 21, 31], [41, 51, 61], [71, 81, 91]] # calling function used in the variable f_list = flatten_list(n_list) print("The individual element in the list:\n", f_list)
The individual element in the list: [11, 21, 31, 41, 51, 61, 71, 81, 91]
Il s'agit d'un programme Python qui utilise le module itertools pour aplatir les listes imbriquées. La fonction flatten_list prend une liste imbriquée comme argument et renvoie une nouvelle liste contenant tous les éléments de la sous-liste. La fonction itertools.chain combine toutes les sous-listes en un objet itérable, qui est ensuite converti en liste à l'aide de la fonction list. Le programme crée ensuite une liste imbriquée appelée nested_list, appelle la fonction flatten_list en utilisant la liste comme argument et affecte le résultat à la variable flattened_list.
Dans l'exemple ci-dessous, démarrez le programme en important un module appelé itertools qui aidera à convertir les listes plates en éléments individuels. Commencez ensuite à créer la fonction flatten_list qui accepte le paramètre lst
import itertools def flatten_list(lst): return list(itertools.chain(*lst)) # Create the flatten list nested_list = [[12, 22, 32], [42, 52, 62], [72, 82, 92]] # Calling function used in the variable flattened_list = flatten_list(nested_list) print("The individual element in the list:\n", flattened_list)
The individual element in the list: [12, 22, 32, 42, 52, 62, 72, 82, 92]
Ce programme utilise une fonction récursive pour gérer l'aplatissement de la liste et utilise la fonction intégrée isintance() qui vérifiera la condition du type d'objet et aidera à générer une liste aplatie d'éléments individuels.
Dans l'exemple ci-dessous, le programme aplatit de manière itérative la liste construite en extrayant chaque élément. Il imprime ensuite une liste aplatie contenant tous les éléments individuels de la liste imbriquée.
def flatten_list(lst): emp_list = [] for item in lst: if isinstance(item, list): emp_list.extend(flatten_list(item)) else: emp_list.append(item) return emp_list # Create the flatten list nested_list = [[81, 82, 83], [84, 85, 86], [87, 88, 89, 99, 100]] f_list = flatten_list(nested_list) print("The individual element in the list:\n", f_list)
The individual element in the list: [81, 82, 83, 84, 85, 86, 87, 88, 89, 99, 100]
Nous avons discuté de différentes façons de résoudre l'énoncé du problème. Nous voyons comment l'aplatissement des listes nous donnera une compétence essentielle, nous permettant de travailler avec des structures de données complexes et d'accéder plus efficacement à des éléments individuels. De plus, savoir comment aplatir une liste peut être utile si nous travaillons sur le traitement de données, la résolution de problèmes algorithmiques ou toute autre mission ou tâche de programmation Python.
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!