Comment convertir un ensemble en une liste en Python ? Utiliser
a = set(["Blah", "Hello"])
a = list(a)
ne fonctionne pas. Ça me donne :
TypeError: 'set' object is not callable
Comment convertir un ensemble en une liste en Python ? Utiliser
a = set(["Blah", "Hello"])
a = list(a)
ne fonctionne pas. Ça me donne :
TypeError: 'set' object is not callable
Votre code fait fonctionne (testé avec cpython 2.4, 2.5, 2.6, 2.7, 3.1 et 3.2) :
>>> a = set(["Blah", "Hello"])
>>> a = list(a) # You probably wrote a = list(a()) here or list = set() above
>>> a
['Blah', 'Hello']
Vérifiez que vous n'avez pas écrasé list
par accident :
>>> assert list == __builtins__.list
Vous avez occulté l'ensemble builtin en l'utilisant accidentellement comme nom de variable, voici un moyen simple de reproduire votre erreur
>>> set=set()
>>> set=set()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
La première ligne lie l'ensemble à un instance de l'ensemble. La deuxième ligne essaie de appelez l'instance qui, bien sûr, échoue.
Voici une version moins confuse utilisant des noms différents pour chaque variable. Utilisation d'un nouvel interpréteur
>>> a=set()
>>> b=a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
J'espère qu'il est évident qu'appeler a
est une erreur
Ça va marcher :
>>> t = [1,1,2,2,3,3,4,5]
>>> print list(set(t))
[1,2,3,4,5]
Cependant, si vous avez utilisé "list" ou "set" comme nom de variable, vous obtiendrez le message :
TypeError: 'set' object is not callable
eg :
>>> set = [1,1,2,2,3,3,4,5]
>>> print list(set(set))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
La même erreur se produira si vous avez utilisé "liste" comme nom de variable.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.