159 Как я могу преобразовать набор в список в Python? С помощью a = set(["Blah", "Hello"]) a = list(a) не работает Это дает мне: TypeError: 'set' object is not callable python list set источник 6 Вышеуказанное работает для меня на Python 2.7. aukaost 20 если вы назвали другую переменную в своем коде, setизмените ее, потому что вы скрываете встроенную функцию set. mouad 5 @mouad Нет, строка в скобках в a TypeError- это имя типа , а не имя переменной phihag 7 @ Судья Джон Дид: Вы list = some_setгде-то сделали . Добавьте, print listпрежде чем позвонить. Йохен Ритцель 6 Я столкнулся с этой проблемой при отладке в PDB, где «список» переопределяется как команда PDB. WP McNeill Ответы: 242 Ваш код делает работу (протестировано с CPython 2.4, 2.5, 2.6, 2.7, 3.1 и 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Убедитесь, что вы не перезаписали listслучайно: >>> assert list == __builtins__.list phihag источник 2 Я просто скопировал и вставил этот точный код в IDLE; Я получаю ошибку. Можете ли вы предоставить вывод dir(set)и print 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'](удалено __ из-за лимита символов) @ Судья Джон Дид В какой строке вы получаете сообщение об ошибке? Ты setхорошо выглядишь. Phihag попробуйте установить вместо набора: REF: docs.python.org/2/library/sets.html Гонсало 72 Вы скрыли встроенный набор, случайно использовав его в качестве имени переменной, вот простой способ повторить вашу ошибку >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Первая строка связывает набор с экземпляром набора. Вторая линия пытается позвонить экземпляр, который, конечно, дает сбой. Вот менее запутанная версия, использующая разные имена для каждой переменной. Используя свежий переводчик >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Надеюсь, очевидно, что вызов aявляется ошибкой Джон Ла Рой источник 25 перед написанием set(XXXXX) вы использовали "set" в качестве переменной, например set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Чжан Ивэй источник 15 Это будет работать: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Однако, если вы использовали «список» или «набор» в качестве имени переменной, вы получите: TypeError: 'set' object is not callable например: >>> 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 Такая же ошибка произойдет, если вы использовали «список» в качестве имени переменной. Ник источник 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu источник 4 Ваш код работает с Python 3.2.1 на Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Вендал Чен источник 2 Попробуйте использовать комбинацию функций map и lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Это очень удобный подход, если у вас есть набор чисел в строке, и вы хотите преобразовать его в список целых чисел: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Я пошла пока источник
242 Ваш код делает работу (протестировано с CPython 2.4, 2.5, 2.6, 2.7, 3.1 и 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Убедитесь, что вы не перезаписали listслучайно: >>> assert list == __builtins__.list phihag источник 2 Я просто скопировал и вставил этот точный код в IDLE; Я получаю ошибку. Можете ли вы предоставить вывод dir(set)и print 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'](удалено __ из-за лимита символов) @ Судья Джон Дид В какой строке вы получаете сообщение об ошибке? Ты setхорошо выглядишь. Phihag попробуйте установить вместо набора: REF: docs.python.org/2/library/sets.html Гонсало 72 Вы скрыли встроенный набор, случайно использовав его в качестве имени переменной, вот простой способ повторить вашу ошибку >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Первая строка связывает набор с экземпляром набора. Вторая линия пытается позвонить экземпляр, который, конечно, дает сбой. Вот менее запутанная версия, использующая разные имена для каждой переменной. Используя свежий переводчик >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Надеюсь, очевидно, что вызов aявляется ошибкой Джон Ла Рой источник 25 перед написанием set(XXXXX) вы использовали "set" в качестве переменной, например set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Чжан Ивэй источник 15 Это будет работать: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Однако, если вы использовали «список» или «набор» в качестве имени переменной, вы получите: TypeError: 'set' object is not callable например: >>> 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 Такая же ошибка произойдет, если вы использовали «список» в качестве имени переменной. Ник источник 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu источник 4 Ваш код работает с Python 3.2.1 на Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Вендал Чен источник 2 Попробуйте использовать комбинацию функций map и lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Это очень удобный подход, если у вас есть набор чисел в строке, и вы хотите преобразовать его в список целых чисел: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Я пошла пока источник
72 Вы скрыли встроенный набор, случайно использовав его в качестве имени переменной, вот простой способ повторить вашу ошибку >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Первая строка связывает набор с экземпляром набора. Вторая линия пытается позвонить экземпляр, который, конечно, дает сбой. Вот менее запутанная версия, использующая разные имена для каждой переменной. Используя свежий переводчик >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Надеюсь, очевидно, что вызов aявляется ошибкой Джон Ла Рой источник
25 перед написанием set(XXXXX) вы использовали "set" в качестве переменной, например set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Чжан Ивэй источник
15 Это будет работать: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Однако, если вы использовали «список» или «набор» в качестве имени переменной, вы получите: TypeError: 'set' object is not callable например: >>> 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 Такая же ошибка произойдет, если вы использовали «список» в качестве имени переменной. Ник источник
4 Ваш код работает с Python 3.2.1 на Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Вендал Чен источник
2 Попробуйте использовать комбинацию функций map и lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Это очень удобный подход, если у вас есть набор чисел в строке, и вы хотите преобразовать его в список целых чисел: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) Я пошла пока источник
set
измените ее, потому что вы скрываете встроенную функциюset
.TypeError
- это имя типа , а не имя переменнойlist = some_set
где-то сделали . Добавьте,print list
прежде чем позвонить.Ответы:
Ваш код делает работу (протестировано с CPython 2.4, 2.5, 2.6, 2.7, 3.1 и 3.2):
Убедитесь, что вы не перезаписали
list
случайно:источник
dir(set)
иprint 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']
(удалено __ из-за лимита символов)set
хорошо выглядишь.Вы скрыли встроенный набор, случайно использовав его в качестве имени переменной, вот простой способ повторить вашу ошибку
Первая строка связывает набор с экземпляром набора. Вторая линия пытается позвонить экземпляр, который, конечно, дает сбой.
Вот менее запутанная версия, использующая разные имена для каждой переменной. Используя свежий переводчик
Надеюсь, очевидно, что вызов
a
является ошибкойисточник
перед написанием
set(XXXXX)
вы использовали "set" в качестве переменной, напримеристочник
Это будет работать:
Однако, если вы использовали «список» или «набор» в качестве имени переменной, вы получите:
например:
Такая же ошибка произойдет, если вы использовали «список» в качестве имени переменной.
источник
источник
Ваш код работает с Python 3.2.1 на Win7 x64
источник
Попробуйте использовать комбинацию функций map и lambda:
Это очень удобный подход, если у вас есть набор чисел в строке, и вы хотите преобразовать его в список целых чисел:
источник