J'essaye de convertir un ensemble en une liste dans Python 2.6. J'utilise cette syntaxe:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Cependant, j'obtiens la trace de pile suivante:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Comment puis-je réparer cela?
python
list
set
python-2.6
gath
la source
la source
TypeError: 'set' object is not callable
: Qu'est-ce que c'estset
? Merciset=set(first_list)
ou quelque chose comme ça. Maintenantset
est redéfini à cet objet d'ensemble qui provoquerait cette erreur. Essayez à nouveau avec un nouvel interprète PythonRéponses:
C'est déjà une liste
Voulez-vous quelque chose comme
EDIT: Sortie de votre dernier commentaire
Je me demande si vous avez fait quelque chose comme ça:
la source
([1,2,12,6])
et vous le faites,list(([1,2,12,6]))
vous obtiendrez une liste du type[1,2,1,2,6]
Au lieu de:
Pourquoi ne pas raccourcir le processus:
Cela supprimera les dupes de votre liste et vous renverra une liste.
la source
[EDITED] Il semble que vous ayez redéfini "liste" plus tôt, en l'utilisant comme nom de variable, comme ceci:
Et vous obtiendrez
la source
Chaque fois que vous êtes coincé dans ce type de problèmes, essayez de trouver le type de données de l'élément que vous souhaitez convertir en premier en utilisant:
Ensuite, utilisez:
pour le convertir en liste. Vous pouvez maintenant utiliser la liste nouvellement construite comme n'importe quelle liste normale en python.
la source
Tapez simplement:
Cela transformera un ensemble sous la forme {'1', '2'} en une liste sous la forme ['1', '2'].
la source
Passez en revue votre première ligne. Votre trace de pile ne provient clairement pas du code que vous avez collé ici, donc je ne sais pas précisément ce que vous avez fait.
Ce que tu voulais, c'était
set([1, 2, 3, 4])
.L'exception "non appelable" signifie que vous faisiez quelque chose comme
set()()
- une tentative d'appeler uneset
instance.la source
Je ne suis pas sûr que vous créez un ensemble avec cette
([1, 2])
syntaxe, plutôt une liste. Pour créer un ensemble, vous devez utiliserset([1, 2])
.Ces crochets enveloppent simplement votre expression, comme si vous auriez écrit:
Il n'y a pas vraiment ignoré, mais ne faites rien à votre expression.
Remarque:
(something, something_else)
créera un tuple (mais toujours pas de liste).la source
set
?Python est un langage typé dynamiquement, ce qui signifie que vous ne pouvez pas définir le type de la variable comme vous le faites en C ou C ++:
ou
En Python, vous utilisez la contrainte si vous changez de types, ou les fonctions init (constructeurs) des types pour déclarer une variable d'un type:
te donnera
<type 'set'>
une réponse.Si vous avez une liste, procédez comme suit:
la source
Hmmm je parie que dans certaines lignes précédentes, vous avez quelque chose comme:
Ai-je tort ?
la source
list
pour être égal à créer un ensembleset(values)
. Et cela créait de la confusion. Votre réponse ne doit pas être rejetée. Mais ce n'est pas non plus accrocher les lecteurs :) Nous sommes juste en train d'écrémer et de voir une mauvaise chose contre le vote.