159 Jak przekonwertować zestaw na listę w Pythonie? Za pomocą a = set(["Blah", "Hello"]) a = list(a) nie działa. To daje mi: TypeError: 'set' object is not callable python list set źródło 6 Powyższe działa dla mnie na Pythonie 2.7. aukaost 20 jeśli nazwałeś inną zmienną w swoim kodzie, setzmień ją, ponieważ śledzisz wbudowaną funkcję set. mouad 5 @mouad Nie, ciąg w nawiasach w a TypeErrorto nazwa typu , a nie nazwa zmiennej phihag 7 @Judge John Deed: list = some_setGdzieś to zrobiłeś . Dodaj, print listzanim zadzwonisz. Jochen Ritzel 6 Trafiłem na ten problem podczas debugowania w PDB, gdzie „lista” jest zastępowana jako polecenie PDB. WP McNeill Odpowiedzi: 242 Kod czyni pracę (testowane CPython 2.4, 2.5, 2.6, 2.7, 3.1 i 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Sprawdź, czy przypadkowo nie nadpisałeś list: >>> assert list == __builtins__.list phihag źródło 2 Właśnie skopiowałem i wkleiłem ten dokładny kod w IDLE; Otrzymuję błąd. Czy możesz podać wynik dir(set)i print set? Susam Pal ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](usunięto __ z powodu limitu @Judge John Deed W którym wierszu pojawia się błąd? Twój setwygląda dobrze. phihag spróbuj Ustaw zamiast set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Cieniowałeś wbudowany zestaw przez przypadkowe użycie go jako nazwy zmiennej, oto prosty sposób na powielenie błędu >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Pierwsza linia ponownie wiąże zestaw do instancji set. Druga linia próbuje wywołać instancję, co oczywiście kończy się niepowodzeniem. Oto mniej zagmatwana wersja, która używa różnych nazw dla każdej zmiennej. Korzystanie z nowego tłumacza >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Miejmy nadzieję, że jest oczywiste, że dzwonienie ajest błędem John La Rooy źródło 25 zanim napiszesz set(XXXXX) użyłeś "set" jako zmiennej np set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei źródło 15 To zadziała: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Jeśli jednak użyłeś „list” lub „set” jako nazwy zmiennej, otrzymasz: TypeError: 'set' object is not callable na przykład: >>> 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 Ten sam błąd wystąpi, jeśli użyjesz „listy” jako nazwy zmiennej. Nacięcie źródło 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu źródło 4 Twój kod działa z Pythonem 3.2.1 na Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen źródło 2 Spróbuj użyć kombinacji funkcji map i lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Jest to bardzo wygodne podejście, jeśli masz zbiór liczb w łańcuchu i chcesz go przekonwertować na listę liczb całkowitych: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Idę, pa źródło
242 Kod czyni pracę (testowane CPython 2.4, 2.5, 2.6, 2.7, 3.1 i 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Sprawdź, czy przypadkowo nie nadpisałeś list: >>> assert list == __builtins__.list phihag źródło 2 Właśnie skopiowałem i wkleiłem ten dokładny kod w IDLE; Otrzymuję błąd. Czy możesz podać wynik dir(set)i print set? Susam Pal ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](usunięto __ z powodu limitu @Judge John Deed W którym wierszu pojawia się błąd? Twój setwygląda dobrze. phihag spróbuj Ustaw zamiast set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Cieniowałeś wbudowany zestaw przez przypadkowe użycie go jako nazwy zmiennej, oto prosty sposób na powielenie błędu >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Pierwsza linia ponownie wiąże zestaw do instancji set. Druga linia próbuje wywołać instancję, co oczywiście kończy się niepowodzeniem. Oto mniej zagmatwana wersja, która używa różnych nazw dla każdej zmiennej. Korzystanie z nowego tłumacza >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Miejmy nadzieję, że jest oczywiste, że dzwonienie ajest błędem John La Rooy źródło 25 zanim napiszesz set(XXXXX) użyłeś "set" jako zmiennej np set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei źródło 15 To zadziała: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Jeśli jednak użyłeś „list” lub „set” jako nazwy zmiennej, otrzymasz: TypeError: 'set' object is not callable na przykład: >>> 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 Ten sam błąd wystąpi, jeśli użyjesz „listy” jako nazwy zmiennej. Nacięcie źródło 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu źródło 4 Twój kod działa z Pythonem 3.2.1 na Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen źródło 2 Spróbuj użyć kombinacji funkcji map i lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Jest to bardzo wygodne podejście, jeśli masz zbiór liczb w łańcuchu i chcesz go przekonwertować na listę liczb całkowitych: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Idę, pa źródło
72 Cieniowałeś wbudowany zestaw przez przypadkowe użycie go jako nazwy zmiennej, oto prosty sposób na powielenie błędu >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Pierwsza linia ponownie wiąże zestaw do instancji set. Druga linia próbuje wywołać instancję, co oczywiście kończy się niepowodzeniem. Oto mniej zagmatwana wersja, która używa różnych nazw dla każdej zmiennej. Korzystanie z nowego tłumacza >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Miejmy nadzieję, że jest oczywiste, że dzwonienie ajest błędem John La Rooy źródło
25 zanim napiszesz set(XXXXX) użyłeś "set" jako zmiennej np set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei źródło
15 To zadziała: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Jeśli jednak użyłeś „list” lub „set” jako nazwy zmiennej, otrzymasz: TypeError: 'set' object is not callable na przykład: >>> 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 Ten sam błąd wystąpi, jeśli użyjesz „listy” jako nazwy zmiennej. Nacięcie źródło
4 Twój kod działa z Pythonem 3.2.1 na Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen źródło
2 Spróbuj użyć kombinacji funkcji map i lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Jest to bardzo wygodne podejście, jeśli masz zbiór liczb w łańcuchu i chcesz go przekonwertować na listę liczb całkowitych: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Idę, pa źródło
set
zmień ją, ponieważ śledzisz wbudowaną funkcjęset
.TypeError
to nazwa typu , a nie nazwa zmiennejlist = some_set
Gdzieś to zrobiłeś . Dodaj,print list
zanim zadzwonisz.Odpowiedzi:
Kod czyni pracę (testowane CPython 2.4, 2.5, 2.6, 2.7, 3.1 i 3.2):
Sprawdź, czy przypadkowo nie nadpisałeś
list
:źródło
dir(set)
iprint set
?['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
(usunięto __ z powodu limituset
wygląda dobrze.Cieniowałeś wbudowany zestaw przez przypadkowe użycie go jako nazwy zmiennej, oto prosty sposób na powielenie błędu
Pierwsza linia ponownie wiąże zestaw do instancji set. Druga linia próbuje wywołać instancję, co oczywiście kończy się niepowodzeniem.
Oto mniej zagmatwana wersja, która używa różnych nazw dla każdej zmiennej. Korzystanie z nowego tłumacza
Miejmy nadzieję, że jest oczywiste, że dzwonienie
a
jest błędemźródło
zanim napiszesz
set(XXXXX)
użyłeś "set" jako zmiennej npźródło
To zadziała:
Jeśli jednak użyłeś „list” lub „set” jako nazwy zmiennej, otrzymasz:
na przykład:
Ten sam błąd wystąpi, jeśli użyjesz „listy” jako nazwy zmiennej.
źródło
źródło
Twój kod działa z Pythonem 3.2.1 na Win7 x64
źródło
Spróbuj użyć kombinacji funkcji map i lambda:
Jest to bardzo wygodne podejście, jeśli masz zbiór liczb w łańcuchu i chcesz go przekonwertować na listę liczb całkowitych:
źródło