Próbuję przekonwertować zestaw na listę w Pythonie 2.6. Używam tej składni:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Jednak otrzymuję następujący ślad stosu:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Jak mogę to naprawić?
python
list
set
python-2.6
gath
źródło
źródło
TypeError: 'set' object is not callable
: Co to jestset
? Dziękiset=set(first_list)
lub coś. Terazset
jest przedefiniowana do tego obiektu zestawu, co spowodowałoby ten błąd. Spróbuj ponownie ze świeżym tłumaczemOdpowiedzi:
To już jest lista
Chcesz czegoś takiego
EDYCJA: Wyjście twojego ostatniego komentarza
Zastanawiam się, czy zrobiłeś coś takiego:
źródło
([1,2,12,6])
i to zrobiszlist(([1,2,12,6]))
, otrzymasz listę taką jak[1,2,1,2,6]
Zamiast:
Dlaczego nie skrócić procesu:
Spowoduje to usunięcie duplikatów z Twojej listy i zwrócenie listy z powrotem.
źródło
[ZMIENIONO] Wygląda na to, że wcześniej przedefiniowałeś „listę”, używając jej jako nazwy zmiennej, na przykład:
I dostaniesz
źródło
Ilekroć utkniesz w tego typu problemach, spróbuj najpierw znaleźć typ danych elementu, który chcesz przekonwertować, używając:
Następnie użyj:
aby przekształcić go w listę. Możesz teraz używać nowo zbudowanej listy jak każdej normalnej listy w Pythonie.
źródło
Wystarczy wpisać:
Spowoduje to zamianę zbioru w postaci {'1', '2'} w listę w postaci ['1', '2'].
źródło
Przejrzyj swoją pierwszą linię. Twój ślad stosu najwyraźniej nie pochodzi z wklejonego tutaj kodu, więc nie wiem dokładnie, co zrobiłeś.
To, czego chciałeś, to
set([1, 2, 3, 4])
.Wyjątek „niemożliwy
set()()
do wywołania ” oznacza, że robiłeś coś takiego jak - próba wywołaniaset
instancji.źródło
Nie jestem pewien, czy tworzysz zestaw z taką
([1, 2])
składnią, a raczej listę. Aby stworzyć zestaw, powinieneś użyćset([1, 2])
.Te nawiasy po prostu otaczają wyrażenie, tak jakbyś napisał:
Tak naprawdę nie są ignorowane, ale nie rób nic ze swoim wyrazem twarzy.
Uwaga:
(something, something_else)
utworzy krotkę (ale nadal nie ma listy).źródło
set
?Python jest językiem z typami dynamicznymi, co oznacza, że nie możesz zdefiniować typu zmiennej, tak jak w C lub C ++:
lub
W Pythonie używasz koercji, jeśli zmieniasz typy, lub funkcji inicjujących (konstruktorów) typów, aby zadeklarować zmienną typu:
da tobie
<type 'set'>
odpowiedź.Jeśli masz listę, zrób to:
źródło
Hmmm założę się, że w niektórych poprzednich liniach masz coś takiego:
Czy się mylę ?
źródło
list
na równe tworzenie zbioruset(values)
. I to powodowało zamieszanie. Twoja odpowiedź nie powinna być odrzucona. Ale też nie wkurza czytelników :) Po prostu przeglądamy i widzimy złą opinię.