Introduction
En Python, une liste peut contenir d'autres listes en tant qu'éléments. Parfois, nous devons aplatir une liste, ce qui signifie convertir une liste imbriquée en une seule liste qui contient tous les éléments de la liste d'origine. Une manière de faire cela est d'utiliser l'opérateur de diffusion. Dans ce défi, vous devrez implémenter une fonction qui aplatit une liste à l'aide de l'opérateur de diffusion.
Spread List
Écrivez une fonction appelée spread(arg) qui prend une liste en argument et renvoie une nouvelle liste qui contient tous les éléments de la liste d'origine, aplatis. Si un élément de la liste d'origine est une liste elle-même, ses éléments doivent être ajoutés individuellement à la nouvelle liste. La fonction ne doit pas modifier la liste d'origine.
Pour implémenter la fonction, vous devriez parcourir les éléments de la liste d'origine et utiliser l'opérateur de diffusion pour ajouter les éléments à la nouvelle liste. Si un élément est une liste, vous devriez utiliser la méthode extend() pour ajouter ses éléments à la nouvelle liste. Si un élément n'est pas une liste, vous devriez utiliser la méthode append() pour l'ajouter à la nouvelle liste.
def spread(arg):
ret = []
for i in arg:
ret.extend(i) if isinstance(i, list) else ret.append(i)
return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) ## [1, 2, 3, 4, 5, 6, 7, 8, 9]
Résumé
Dans ce défi, vous avez appris à utiliser l'opérateur de diffusion pour aplatir une liste en Python. Vous avez également implémenté une fonction qui prend une liste en argument et renvoie une nouvelle liste qui contient tous les éléments de la liste d'origine, aplatis. Il s'agit d'une technique utile à connaître lorsqu'on travaille avec des listes imbriquées en Python.