Python >> Tutoriel Python >  >> Python

5 façons de convertir un tuple en liste en Python

Si vous manquez de temps, voici mon point de vue rapide sur comment convertir un tuple Python en liste Python ?

La façon la plus Pythonic de convertir un tuple en une liste en Python est d'appeler le list() intégré fonction et passez le tuple comme argument de la fonction à la fonction. La fonction list() prend n'importe quel type de séquence tel qu'un tuple et les convertit en listes. La valeur de retour de la fonction est la nouvelle liste générée.

t = (1, 2, 3)
l = list(t)
print(l)
# [1, 2, 3]

Il y a quelques détails à cette approche, ainsi que des alternatives. N'hésitez pas à continuer à lire, à regarder la vidéo de l'article et à améliorer vos compétences en Python dans le processus ! 🙂

Commençons !

Formulation du problème + exemples

Problème  :Étant donné un tuple Python avec n éléments. Comment le convertir en une liste avec le même n éléments ?

Exemples :

  • Convertir le tuple (1, 2, 3, 4, 5) pour lister [1, 2, 3, 4, 5] .
  • Convertir le tuple ('Alice', 'Bob', 'Ann') pour lister ['Alice', 'Bob', 'Ann'] .
  • Convertir le tuple (1,) pour lister [1] .

Remarque tuple  :Les tuples sont similaires aux listes, à la différence que vous ne pouvez pas modifier les valeurs des tuples (les tuples sont immuables) et que vous utilisez des parenthèses (...) plutôt que des crochets [...] .

Présentation de la solution

Cet article présente cinq solutions à ce problème de conversion d'un tuple t vers une nouvelle liste :

  1. list(t)
  2. for el in t: new_list.append(el)
  3. [*t]
  4. [x for x in t]

Méthode 1 :liste()

Solution  :Utilisez le Python intégré list() fonction pour convertir une liste en un tuple. Vous n'avez pas besoin d'importer de bibliothèque externe.

Code :Le code suivant convertit les trois tuples donnés en listes.

tuple_1 = (1, 2, 3, 4, 5)
print(list(tuple_1))
# [1, 2, 3, 4, 5]

tuple_2 = ('Alice', 'Bob', 'Ann')
print(list(tuple_2))
# ['Alice', 'Bob', 'Ann']

tuple_3 = (1,)
print(list(tuple_3))
# [1]

Explication :Vous pouvez voir que la conversion d'un tuple avec un élément conduit à une liste avec un élément. Le list() La fonction est le moyen le plus simple de convertir un tuple en liste. Notez que les valeurs du tuple ne sont pas copiées, seule une nouvelle référence au même élément est créée :

Le graphique montre également comment reconvertir un tuple en liste en utilisant le tuple() fonction (c'est aussi une fonction intégrée Python). Ainsi, en appelant list(tuple(lst)) sur une liste lst entraînera une nouvelle liste avec les mêmes éléments.

Articles associés :

  • Copie de la liste
  • Liste du guide complet
  • Convertir la liste en tuple
  • Convertir la liste en dict

Essayez d'exécuter ce code avec le tuteur Python interactif :

Méthode 2 :Itération de boucle + append()

Pour convertir un tuple en liste, commencez par une liste vide et remplissez un élément de tuple à la fois en utilisant le append() méthode et transmettez l'élément de tuple dans la fonction dans un corps de boucle Python itérant sur tous les éléments de tuple.

Voici le code pour le faire :

def tuple_to_list(t):
    new_list = []
    for element in t:
        new_list.append(element)
    return new_list

tuple_1 = (1, 2, 3, 4, 5)
print(tuple_to_list(tuple_1))
# [1, 2, 3, 4, 5]

tuple_2 = ('Alice', 'Bob', 'Ann')
print(tuple_to_list(tuple_2))
# ['Alice', 'Bob', 'Ann']

tuple_3 = (1,)
print(tuple_to_list(tuple_3))
# [1]

Vous pouvez en savoir plus sur le append() méthode dans mon guide détaillé et la vidéo qui l'accompagne :

Méthode 3 :Déballage de l'opérateur Asterisk

Pour convertir un tuple en liste, vous pouvez utiliser l'opérateur astérisque de déballage * à partir de la version 3.5 de Python. Par exemple, l'expression [*t] crée une nouvelle liste avec la notation entre crochets et décompresse tous les éléments du tuple t dans la liste.

Voici le code pour y parvenir :

def tuple_to_list(t):
    return [*t]

tuple_1 = (1, 2, 3, 4, 5)
print(tuple_to_list(tuple_1))
# [1, 2, 3, 4, 5]

tuple_2 = ('Alice', 'Bob', 'Ann')
print(tuple_to_list(tuple_2))
# ['Alice', 'Bob', 'Ann']

tuple_3 = (1,)
print(tuple_to_list(tuple_3))
# [1]

L'expression [*t] est la ligne la plus concise pour convertir un tuple t à une liste !

Méthode 4 :Compréhension de la liste

L'instruction de compréhension de liste [x for x in t] convertit un tuple Python t dans une nouvelle liste en itérant sur tous les éléments x dans le tuple t et en les plaçant tels quels dans la liste en utilisant la notation entre crochets [] .

Voici le code :

def tuple_to_list(t):
    return [x for x in t]

tuple_1 = (1, 2, 3, 4, 5)
print(tuple_to_list(tuple_1))
# [1, 2, 3, 4, 5]

tuple_2 = ('Alice', 'Bob', 'Ann')
print(tuple_to_list(tuple_2))
# ['Alice', 'Bob', 'Ann']

tuple_3 = (1,)
print(tuple_to_list(tuple_3))
# [1]

Si vous avez besoin d'un rappel rapide sur la compréhension des listes, n'hésitez pas à consulter mon guide détaillé sur le blog Finxter.

Méthode 5 :Convertir un tuple de tuples en liste de listes

Si vous avez un tuple de tuples tel que ((1, 2, 3), (4, 5, 6)) vous pouvez le convertir en une liste de listes telles que [[1, 2, 3], [4, 5, 6]] en combinant la compréhension de liste avec le list() fonctionner comme suit :

[list(x) for x in t]

Voici un exemple de code simple :

def tuple_to_list(t):
    return [list(x) for x in t]

tuple_1 = ((1, 2, 3),
           (4, 5, 6, 7, 8, 9),
           ('Alice', 'Bob', 'Carl'))
print(tuple_to_list(tuple_1))
# [[1, 2, 3], [4, 5, 6, 7, 8, 9], ['Alice', 'Bob', 'Carl']]

Humour de programmeur – Blockchain


Post précédent