copier tuple dans liste - Python - Programmation
Marsh Posté le 15-09-2018 à 15:54:38
salut,
pour convertir un tuple en list :
b = list(a)
le reste j'ai pas tout compris, mais si y'a une chose que tu n'as apparemment pas compris c'est qu'on ne peut pas modifier un tuple, ils sont immutables.
Marsh Posté le 15-09-2018 à 20:37:57
OK, je comprends : on peut le lire mais pas y écrire.
Merci pour le list(), je l'avais oublié celui-là.
Du coup il y a bien au moins 3 façons de copier un tuple dans une liste. Il doit bien y en avoir une plus efficace que les autres en termes de temps, à voir...
Marsh Posté le 15-09-2018 à 21:53:09
siliconsensor a écrit : Du coup il y a bien au moins 3 façons de copier un tuple dans une liste. Il doit bien y en avoir une plus efficace que les autres en termes de temps, à voir... |
Il y a une tétrachiée de moyens de copier un itérable dans une liste
Et franchement si c'est ça qui limite les perfs de ton soft, t'es dans une merde noire, et python n'est probablement pas l'outil adéquat dans tous les cas. Mais la réponse à ton interrogation est assez certainement
Code :
|
Marsh Posté le 14-09-2018 à 17:44:42
Bonjour,
En Python3 si j'écris :
>>> a=(1,2)
>>> b=[a[0],a[1]]
>>> print (a,b)
(1, 2) [1, 2]
Une liste b est crée à partir du tuple a.
Mais si on ajoute :
>>> a[0]=3
On se retrouve avec le message d'erreur : TypeError: 'tuple' object does not support item assignment
Pourquoi le a[0] marchait dans b=[a[0],a[1] et pas dans a[0]=3 ? Je suppose qu'il doit y avoir un changement de type dans le premier cas mais si quelqu'un pouvait m'expliquer clairement...
Sinon j'aurais aussi pu écrire :
>>> b = [i for i in a]
>>> print(a,b)
(1, 2) [1, 2]
Qu'elle est la meilleure solution à votre avis et pourquoi ?
Cordialement.