9
votes

Une liste vs tuple dans Python

existe-t-il une situation où l'utilisation d'une liste conduit à une erreur et vous devez utiliser un tuple à la place?

Je connais quelque chose sur les propriétés des tuples et des listes, mais pas assez pour connaître la réponse à cette question. Si la question serait l'inverse, ce serait que les listes peuvent être ajustées, mais les tuples ne le font pas.


1 commentaires

duplicaté possible de Stackoverflow.com/questions/1983/...


3 Réponses :


15
votes

Vous pouvez utiliser des tuples sous forme de touches de dictionnaire, car elles sont immuables, mais vous ne pouvez pas utiliser de listes. Par exemple: xxx


1 commentaires

De même, les ensembles sont mutables mais les congélanges ne sont pas. Donc, si vous avez besoin d'une clé comme clé, vous devez le convertir en gelenget.



10
votes

En raison de leur nature immuable, des tuples (contrairement aux listes) sont hachable . C'est ce qui permet aux tuples d'être des clés dans les dictionnaires et également des membres des ensembles. Strictement parlant, c'est leur hachabilité, pas leur immuabilité qui compte.

Ainsi, en plus de la réponse clé du dictionnaire déjà donné, deux autres choses qui fonctionneront pour les tuples mais non les listes sont les suivantes: P>

>>> hash((1, 2))
3713081631934410656

>>> set([(1, 2), (2, 3, 4), (1, 2)])
set([(1, 2), (2, 3, 4)])


0 commentaires

4
votes

dans Formatage des chaînes Les tuples sont obligatoires: xxx

à l'aide d'une liste dans cet exemple produit l'erreur "PAS suffisamment d'arguments pour formater une chaîne", car une liste est considéré comme un argument. Bizarre mais vrai.


0 commentaires