list - Python: quelle est la différence entre (1,2,3) et [1,2,3], et quand dois-je les utiliser chacun?

Translate

Dans de nombreux endroits,(1,2,3)(un tuple) et[1,2,3](une liste) peut être utilisée de manière interchangeable.

Quand dois-je utiliser l'un ou l'autre et pourquoi?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

DuFAQ Python:

Les listes et les tuples, bien que similaires à bien des égards, sont généralement utilisés de manière fondamentalement différente. Les tuples peuvent être considérés comme similaires aux enregistrements Pascal ou aux structures C; ce sont de petits ensembles de données connexes qui peuvent être de différents types et qui sont exploités en tant que groupe. Par exemple, une coordonnée cartésienne est représentée de façon appropriée comme un tuple de deux ou trois nombres.

Les listes, en revanche, ressemblent davantage à des tableaux dans d'autres langues. Ils ont tendance à contenir un nombre variable d'objets qui ont tous le même type et qui fonctionnent un par un.

Généralement, par convention, vous ne choisiriez pas une liste ou un tuple uniquement basé sur sa (im) mutabilité. Vous choisiriez un tuple pour de petites collections de données complètement différentes dans lesquelles une classe à part entière serait trop lourde, et une liste pour les collections de toute taille raisonnable où vous avez un ensemble homogène de données.

La source
Translate

La liste[1,2,3]est dynamique et flexible, mais cette flexibilité a un coût rapide.

Le tuple(1,2,3)est fixe (immuable) et donc plus rapide.

La source
HS.
Translate

Les tuples sont un moyen rapide \ flexible de créercompositeTypes de données. Les listes sont des conteneurs pour, eh bien, des listes d'objets.

Par exemple, vous utiliseriez une liste pour stocker une liste des détails de l'élève dans une classe.

Chaque détail d'étudiant dans cette liste peut être un 3-tuple contenant leur numéro de rôle, leur nom et leur score au test.

`[(1,'Mark',86),(2,'John',34)...]`

De plus, comme les tuples sont immuables, ils peuvent être utilisés comme clés dans les dictionnaires.

La source
Translate

La notion de tuples est très expressive:

  • Pragmatiquement, ils sont parfaits pour l'emballage et le déballage des valeurs (x,y=coord).

  • En combinaison avec des dictionnaires (tables de hachage), ils permettent des formes de mappage qui nécessiteraient autrement de nombreux niveaux d'association. Par exemple, pensez à marquer que (x, y) a été trouvé.

    // PHP
    if (!isset($found[$x])) {
        $found[$x] = Array();
        $found[$x][$y] = true;
    } else if (!isset($found[$x][$y])) {
        $found[$x][$y] = true;
    }
    
    # Python
    found[(x,y)] = True # parens added for clarity
    
  • Les listes doivent être utilisées dans l'attente d'opérations sur son contenu (d'où les diverses mentions d'immuabilité). On voudra pop, pousser, épisser, découper, rechercher, insérer avant, insérer après, etc. avec une liste.

  • Les tuples doivent être une représentation de bas niveau d'un objet, où de simples comparaisons sont effectuées, ou des opérations telles que l'extraction du nième élément ou des n éléments d'une manière prévisible, comme l'exemple de coordonnées donné précédemment.

  • Enfin, les listes ne sont pas hachables, donc le type de mapping effectué avec les dictionnaires (tables de hachage en Perl, tableaux associatifs en PHP) doit être fait avec des tuples.

    Voici un exemple simple de tuples et de dictionnaires, enfin réunis:

    """
    couple is a tuple of two people
    doesLike is a dictionary mapping couples to True or False
    """
    couple = "john", "jane"
    doesLike = dict()
    doesLike[couple] = True
    doesLike["jane", "john"] = False # unrequited love :'(
    
La source
Dora Lee
Translate

[1, 2, 3]est une liste dans laquelle on peut ajouter ou supprimer des éléments.
(1, 2, 3)est un tuple dans lequel une fois défini, la modification ne peut pas être effectuée.

La source
cnu
Translate

Chaque fois que j'ai besoin de transmettre une collection d'éléments à une fonction, si je veux que la fonction ne change pas les valeurs transmises, j'utilise des tuples.

Sinon, si je veux avoir la fonction de modifier les valeurs, j'utilise list.

Toujours si vous utilisez des bibliothèques externes et devez transmettre une liste de valeurs à une fonction et que vous n'êtes pas sûr de l'intégrité des données, utilisez un tuple.

La source
JSN
Translate

Comme d'autres l'ont mentionné, les listes et les tuples sont tous deux des conteneurs qui peuvent être utilisés pour stocker des objets python. Les listes sont extensibles et leur contenu peut changer par affectation, par contre les tuples sont immuables.

De plus, les listes ne peuvent pas être utilisées comme clés dans un dictionnaire, contrairement aux tuples.

La source
Translate

ouvrez une console et exécutez python. Essaye ça:

  >>> list = [1, 2, 3]     
  >>> dir(list)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
    ce__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getit
    em__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
     '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__r
    educe__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__'
    , '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 
'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Comme vous pouvez le voir, la dernière liste de la dernière ligne utilise les méthodes suivantes:'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'

Maintenant, essayez la même chose pour le tuple:

>>> tuple = (1, 2, 3)
>>> dir(tuple)
    ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
    format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
    slice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__
    lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
    , '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

Seulement'count' et 'index'à partir des méthodes de liste apparaît ici.

En effet, les tuples sont immuables et ne prennent en charge aucune modification. Au lieu de cela, ils sont plus simples et plus rapides dans la mise en œuvre interne.

La source
Translate
  • Un tuple peut représenter une clé dans le dictionnaire, car il est immuable.
  • Utilisez des listes si vous disposez d'une collection de données qui n'a pas besoin d'un accès aléatoire.
La source
Translate

Si vous pouvez trouver une solution qui fonctionne avec les tuples, utilisez-les, car cela force l'immuabilité, ce qui vous conduit sur un chemin plus fonctionnel. Vous ne regrettez presque jamais d'avoir emprunté le chemin fonctionnel / immuable.

La source
Translate

[1,2,3]est une liste.

(1,2,3)est un tuple et immuable.

La source
Translate

(1,2,3) et [1,2,3] peuvent être utilisés de manière interchangeable dans de rares conditions.

Donc (1, 2, 3) est un tuple et est immuable. Toutes les modifications que vous souhaitez apporter doivent écraser l'objet.

[1,2,3] est une liste et des éléments peuvent être ajoutés et supprimés.

La liste a plus de fonctionnalités qu'un tuple.

La source
Translate

(1,2,3)est un tuple tandis que[1,2,3]est une liste. Un tuple est un objet immuable tandis qu'une liste est modifiable.

La source
Translate

(1,2,3)est un tuple et[1,2,3]est une liste. L'un des deux représente des séquences de nombres, mais notez que les tuples sont immuables et que la liste est des objets Python mutables.

La source
Translate

Les listes (1,2,3) -tuple [1,2,3] -list sont mutables sur lesquelles diverses opérations peuvent être effectuées alors que les tuples sont immuables et ne peuvent pas être étendus.Nous ne pouvons pas ajouter, supprimer ou mettre à jour un élément d'un tuple une fois il est créé.

La source