Quelle est la différence entre liste et tuple ?

Publié: 2021-11-28

Tuple et les listes sont un type de structure de données utilisé en Python. Les listes stockent les données dans une seule variable à l'aide de crochets, tandis que les tuples stockent les données dans une variable à l'aide de parenthèses. Les deux structures sont utilisées pour stocker plusieurs valeurs et objets.

Cet article plongera dans les principales différences entre liste et tuple et explorera leurs cas d'utilisation. Mais d'abord, jetons un coup d'œil aux principales similitudes entre eux :

  • Vous pouvez stocker des éléments et des objets de tous types de données dans des tuples et des listes.
  • Le tuple et la liste permettent d'accéder aux données à l'aide de leur index respectif.
  • Ces deux types de données peuvent compiler et cataloguer une variété d'éléments de données.

Table des matières

Python Tuple contre Liste

1. Différences de syntaxe

La déclaration des listes et des tuples est invariablement différente en Python. Les listes sont déclarées à l'aide de crochets '[]', alors que la déclaration des tuples se fait à l'aide de '()'.

Voici un exemple pour mieux comprendre comment déclarer des listes et des tuples en Python.

num_liste = [7,8,9,10]

tup_num = (10,11,13,14)

imprimer(num_liste)

imprimer(tup_num)

La sortie de cette séquence serait.

[7,8,9,10]

(10,11,13,14)

Dans cet exemple, une variable nommée list_num est définie et contient des nombres de 7 à 10. Nous voyons également que la sortie est entre crochets. Cependant, la variable définie comme tup_num et contenant les nombres de 10 à 14 affiche une sortie entre parenthèses.

Python utilise une fonction type() qui nous aide à comprendre le type d'éléments créés.

imprimer(type(tup_num))

impression(type(num_liste))

Sortir:

<classe 'tuple'>

<classe 'liste'>

2. Mutabilité (mutable vs immuable)

Les tuples et les listes sont contradictoires en ce qui concerne leur mutabilité. Les tuples sont des structures immuables qui ne peuvent pas être modifiées ou changées après leur création. Au contraire, les listes sont des structures mutables qui peuvent être facilement altérées ou modifiées après leur création.

Seuls les tuples peuvent être utilisés comme clé des dictionnaires en raison de leur nature immuable. Les listes ne peuvent jamais être utilisées comme clés lorsque cela est nécessaire.

3. Changer un objet (List vs Tuple)

Découvrons ce qui se passe lorsqu'une tentative de modification de la liste est créée.

nom = [alex, rick, martin]

nom [0] = "roxy"

Remarque : le premier élément est toujours appelé 0 et non 1.

Voyons maintenant à quoi ressemblerait la sortie après la commande suivante :

>>>nom

Sortir:

[roxy, rick, martin]

La sortie montre comment le tout premier élément de la liste a changé.

Voyons maintenant quel serait le résultat si un tuple était utilisé.

nom = (alex, rick, martin)

Lorsqu'un élément du tuple est modifié à l'aide de

nom(0) = "roxy"

La sortie sera :

TypeError : l'objet 'tuple' ne prend pas en charge l'affectation d'éléments.

Cela signifie que la structure de données du tuple ne prend pas en charge un objet qui a été modifié ultérieurement. Par conséquent, nous pouvons conclure que seules les listes peuvent être modifiées et non les tuples.

4. Copies vs réutilisées

On ne peut pas copier des tuples. La raison ici est la nature immuable des tuples. Par exemple, si vous exécutez un tuple (tup_name), vous verrez qu'il a été restauré à lui-même.

Exemple:

noms = ('allen", "siri", "Michaela")

copyNames = tuple(noms)

print(names est copyNames)

La sortie ici sera - "True".

Au contraire, si vous essayez de faire la même chose pour une liste, (comme illustré dans l'exemple) :

Exemple:

noms = ["Allen", " siri "' "Michaela"]

copyNames = liste (noms)

print(names est copyNames)

La sortie sera affichée comme "faux".

Vous devrez copier et coller les noms complets dans la nouvelle liste pour une vraie sortie.

5. Python Tuple vs Liste | Différences de taille

En raison de la nature immuable du tuple, Python alloue uniquement des mémoires de tuple sous la forme de gros blocs avec une surcharge relativement faible. Pour les listes, Python ne fournit que des blocs de mémoire de plus petite taille. En conséquence, les tuples n'ont qu'une infime quantité de mémoire par rapport aux listes. Cependant, cela signifie que les tuples sont beaucoup plus rapides à utiliser que les listes lorsque de nombreux éléments sont impliqués.

6. Hétérogène vs homogène

Les tuples peuvent stocker des éléments de différents types qui sont hétérogènes. Au contraire, les listes peuvent stocker des caractéristiques ou des données de la même variante qui sont homogènes.

Ceci, cependant, n'est qu'une différence sémantique. Par exemple, les listes peuvent stocker des données de différents types, et les tuples peuvent également stocker des données du même type.

Exemple:

list_elements = ['allen', 20, 'marie']

tuple_elements = ('allen', "marie", 'alex')

Le code s'exécutera de manière transparente, même si la liste contient une combinaison de nombres et de chaînes.

7. Différences de longueur

Les listes et les tuples varient également en longueur et en taille. Alors que les tuples varient en longueur, la longueur du tuple est fixe. Par conséquent, la taille des listes peut être modifiée à tout moment, contrairement à la longueur des tuples qui reste fixe une fois définie.

Exemple:

list_names = ['allen', 'marie', 'alex']

list_names.append("roxy")

imprimer(list_names)

Sortir:

['Allen',' Marie',' Alex',' Roxy']

La sortie exacte aurait également pu être obtenue en utilisant la fonction insert() au lieu de la fonction append() lorsqu'il s'agit de listes.

Cependant, la structure de données tuple ne nous fournit aucun moyen de modifier sa taille.

8. Cas d'utilisation

Dans des circonstances différentes, au moins une de ces structures de données fonctionne bien. Cela dépend généralement du codeur du programme sur lequel la structure de données est utilisée. La structure de données est choisie en fonction du fait que les éléments de données seront réécrits à l'avenir.

Les tuples sont beaucoup plus vitaux en tant que structures de données que les listes car :

  • L'utilisation de tuples au lieu de listes peut informer le codeur ou l'interpréteur de données de ne pas modifier les informations.
  • Vous pouvez également restaurer des données sans clés à l'aide d'un tuple.
  • Les tuples sont équivalents aux dictionnaires en Python.
  • Les tuples stockés dans une liste sont très faciles à lire.

La nature immuable et hachable des tuples en fait un remplacement parfait des dictionnaires. D'autre part, vous ne pouvez pas utiliser des listes pour remplacer les dictionnaires car ils ne prennent pas en charge la fonction _hash_().

Exemple:

key_val= {('alex', 'brave'):124} #Valide

key_val = {['alex', 'brave']:124} #Invalide

9. Listes imbriquées et tuples

Les tuples et les listes peuvent être stockés les uns dans les autres. Les tuples imbriqués peuvent contenir plus de tuples. De même, les listes imbriquées peuvent également avoir plus de listes.

10. Débogage

Les tuples sont beaucoup plus faciles à déboguer dans des projets plus étendus par rapport aux listes. Cela est dû aux caractéristiques immuables des tuples. Cependant, lorsqu'une quantité beaucoup plus petite de données est impliquée, il est toujours suggéré de s'appuyer sur des listes. Les tuples sont également beaucoup plus faciles à suivre car ils ne peuvent pas être modifiés, contrairement aux listes, où les bogues sont difficiles à suivre.

11. Fonctions et opérations

Python a quelques fonctions bénéfiques qui peuvent être appliquées aux tuples et aux listes, telles que trié, somme, tout, min, max, maigre, etc.

En ce qui concerne les opérations, on peut trouver de nombreuses similitudes dans les listes et les tuples. Cependant, les listes ont des fonctionnalités supplémentaires qui sont absentes des tuples. Il s'agit principalement d'opérations de pop et d'insertion, ainsi que de suppression et de stockage d'éléments.

Points clés à retenir

  • Les tuples ont moins de fonctionnalités que les listes.
  • La structure du tuple est immuable, alors que la structure des listes est mutable.
  • Les tuples ont des longueurs fixes, alors que la longueur des listes peut varier.
  • La syntaxe de la liste est représentée par des crochets "[]", alors que la syntaxe des tuples est présentée sous la forme de parenthèses "()".
  • Les tuples consomment moins de mémoire que les listes.
  • La structure de données tuple est la meilleure lorsque l'accès aux éléments est impliqué.
  • La liste de fonctions est plus efficace pour effectuer des opérations spécifiques de suppression et d'insertion.
  • Les itérations impliquées sur les tuples sont plus rapides que celles impliquées sur les listes.
  • La liste peut avoir plusieurs méthodes construites, alors que le tuple n'en a aucune.

Découvrez en détail les détails pratiques de Python et ses concepts avancés grâce au Master of Science in Data Science de 18 mois d'upGrad programme en collaboration avec l'Université John Moores de Liverpool et l'IIIT Bangalore. Avec une faculté d'enseignement de pointe à votre disposition, plus de 500 heures de matériel d'apprentissage et des cours de résolution de doutes, les étudiants ont une chance de maîtriser Python et d'autres principes fondamentaux de la science des données pour orienter leur carrière en conséquence. De plus, le programme permet de développer des compétences dans plus de 14 langues et outils tels que Tableau, MySQL, Excel, MongoDB, etc.

Alors, n'hésitez pas. Contactez-nous aujourd'hui!

Quand utiliser des Tuples ou des Listes ?

Si vous avez besoin que vos éléments de données soient en lecture seule, vous devez utiliser des tuples. Les données restent constantes dans les tuples en raison de leur disponibilité garantie de données qui ne changent jamais.

Les listes, cependant, sont très modifiables. Par conséquent, les données qu'ils contiennent peuvent toujours être modifiées. Déplacer, changer, supprimer et ajouter des éléments à une liste est très flexible. Il est préférable de les utiliser lorsque les données doivent être modifiées dans les dernières étapes du cycle du programme.

Les tuples sont-ils plus rapides que les listes ?

Oui, la création d'un tuple prend beaucoup moins de temps que la création d'une liste. Lorsque des listes sont créées, il faut accéder à plus d'un bloc de mémoire. C'est parce que les éléments des tuples ne peuvent pas être supprimés et remplacés, alors que les fonctionnalités des listes peuvent être modifiées plusieurs fois au cours du cycle du programme.

Où les tuples et les listes sont-ils utilisés dans la vraie vie ?

On peut faire une liste pour stocker les étapes nécessaires pour cuisiner un plat spécifique en utilisant une recette particulière. La liste implique un accès séquentiel aux données. Par conséquent, on peut accéder aux étapes dans l'ordre. D'autre part, les tuples peuvent être utilisés pour stocker des données telles que la longitude ou la latitude de votre résidence. En effet, un tuple est une collection de données prédéfinies. Vous pouvez également utiliser le même tuple pour stocker les coordonnées de localisation d'autres lieux.