159 Bagaimana saya bisa mengonversi satu set ke daftar dengan Python? Menggunakan a = set(["Blah", "Hello"]) a = list(a) tidak bekerja Ini memberi saya: TypeError: 'set' object is not callable python list set sumber 6 Di atas berfungsi untuk saya di Python 2.7. aukaost 20 jika Anda menamai variabel lain dalam kode Anda, setubahlah karena Anda membayangi fungsi builtin set. mouad 5 @mouad Tidak, string dalam tanda kurung di dalam TypeErroradalah nama dari tipe , bukan nama variabel phihag 7 @ Judge John Deed: Anda melakukannya di list = some_setsuatu tempat. Tambahkan print listsebelum Anda menyebutnya. Jochen Ritzel 6 Saya mengalami masalah ini saat debugging di PDB di mana 'daftar' diganti sebagai perintah PDB. WP McNeill Jawaban: 242 Kode Anda berfungsi (diuji dengan cpython 2.4, 2.5, 2.6, 2.7, 3.1 dan 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Pastikan Anda tidak menimpa listsecara tidak sengaja: >>> assert list == __builtins__.list phihag sumber 2 Saya baru saja menyalin dan menempelkan kode persis ini di IDLE; Saya mendapatkan kesalahan. Bisakah Anda memberikan output dari dir(set)dan 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'](dihapus __ karena batas char) @ Judge John Deed Di jalur mana Anda mendapatkan kesalahan? Kamu setterlihat baik-baik saja. phihag coba Tetapkan alih-alih set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Anda telah membayangi bawaan yang ditetapkan dengan tidak sengaja menggunakannya sebagai nama variabel, berikut adalah cara sederhana untuk mereplikasi kesalahan Anda >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Baris pertama rebind diatur ke instance dari set. Baris kedua sedang mencoba untuk memanggil instance yang tentu saja gagal. Ini adalah versi yang kurang membingungkan menggunakan nama yang berbeda untuk setiap variabel. Menggunakan penerjemah baru >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Semoga jelas bahwa panggilan aadalah kesalahan John La Rooy sumber 25 sebelum Anda menulis, set(XXXXX) Anda telah menggunakan "set" sebagai variabel mis set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei sumber 15 Ini akan berhasil: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Namun, jika Anda telah menggunakan "daftar" atau "set" sebagai nama variabel, Anda akan mendapatkan: TypeError: 'set' object is not callable misalnya: >>> 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 Kesalahan yang sama akan terjadi jika Anda menggunakan "daftar" sebagai nama variabel. Nick sumber 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu sumber 4 Kode Anda berfungsi dengan Python 3.2.1 pada Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen sumber 2 Coba gunakan kombinasi fungsi peta dan lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Ini adalah pendekatan yang sangat nyaman jika Anda memiliki serangkaian angka dalam string dan Anda ingin mengubahnya menjadi daftar bilangan bulat: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE sumber
242 Kode Anda berfungsi (diuji dengan cpython 2.4, 2.5, 2.6, 2.7, 3.1 dan 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Pastikan Anda tidak menimpa listsecara tidak sengaja: >>> assert list == __builtins__.list phihag sumber 2 Saya baru saja menyalin dan menempelkan kode persis ini di IDLE; Saya mendapatkan kesalahan. Bisakah Anda memberikan output dari dir(set)dan 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'](dihapus __ karena batas char) @ Judge John Deed Di jalur mana Anda mendapatkan kesalahan? Kamu setterlihat baik-baik saja. phihag coba Tetapkan alih-alih set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Anda telah membayangi bawaan yang ditetapkan dengan tidak sengaja menggunakannya sebagai nama variabel, berikut adalah cara sederhana untuk mereplikasi kesalahan Anda >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Baris pertama rebind diatur ke instance dari set. Baris kedua sedang mencoba untuk memanggil instance yang tentu saja gagal. Ini adalah versi yang kurang membingungkan menggunakan nama yang berbeda untuk setiap variabel. Menggunakan penerjemah baru >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Semoga jelas bahwa panggilan aadalah kesalahan John La Rooy sumber 25 sebelum Anda menulis, set(XXXXX) Anda telah menggunakan "set" sebagai variabel mis set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei sumber 15 Ini akan berhasil: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Namun, jika Anda telah menggunakan "daftar" atau "set" sebagai nama variabel, Anda akan mendapatkan: TypeError: 'set' object is not callable misalnya: >>> 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 Kesalahan yang sama akan terjadi jika Anda menggunakan "daftar" sebagai nama variabel. Nick sumber 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu sumber 4 Kode Anda berfungsi dengan Python 3.2.1 pada Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen sumber 2 Coba gunakan kombinasi fungsi peta dan lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Ini adalah pendekatan yang sangat nyaman jika Anda memiliki serangkaian angka dalam string dan Anda ingin mengubahnya menjadi daftar bilangan bulat: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE sumber
72 Anda telah membayangi bawaan yang ditetapkan dengan tidak sengaja menggunakannya sebagai nama variabel, berikut adalah cara sederhana untuk mereplikasi kesalahan Anda >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Baris pertama rebind diatur ke instance dari set. Baris kedua sedang mencoba untuk memanggil instance yang tentu saja gagal. Ini adalah versi yang kurang membingungkan menggunakan nama yang berbeda untuk setiap variabel. Menggunakan penerjemah baru >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Semoga jelas bahwa panggilan aadalah kesalahan John La Rooy sumber
25 sebelum Anda menulis, set(XXXXX) Anda telah menggunakan "set" sebagai variabel mis set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei sumber
15 Ini akan berhasil: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Namun, jika Anda telah menggunakan "daftar" atau "set" sebagai nama variabel, Anda akan mendapatkan: TypeError: 'set' object is not callable misalnya: >>> 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 Kesalahan yang sama akan terjadi jika Anda menggunakan "daftar" sebagai nama variabel. Nick sumber
4 Kode Anda berfungsi dengan Python 3.2.1 pada Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen sumber
2 Coba gunakan kombinasi fungsi peta dan lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Ini adalah pendekatan yang sangat nyaman jika Anda memiliki serangkaian angka dalam string dan Anda ingin mengubahnya menjadi daftar bilangan bulat: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE sumber
set
ubahlah karena Anda membayangi fungsi builtinset
.TypeError
adalah nama dari tipe , bukan nama variabellist = some_set
suatu tempat. Tambahkanprint list
sebelum Anda menyebutnya.Jawaban:
Kode Anda berfungsi (diuji dengan cpython 2.4, 2.5, 2.6, 2.7, 3.1 dan 3.2):
Pastikan Anda tidak menimpa
list
secara tidak sengaja:sumber
dir(set)
danprint 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']
(dihapus __ karena batas char)set
terlihat baik-baik saja.Anda telah membayangi bawaan yang ditetapkan dengan tidak sengaja menggunakannya sebagai nama variabel, berikut adalah cara sederhana untuk mereplikasi kesalahan Anda
Baris pertama rebind diatur ke instance dari set. Baris kedua sedang mencoba untuk memanggil instance yang tentu saja gagal.
Ini adalah versi yang kurang membingungkan menggunakan nama yang berbeda untuk setiap variabel. Menggunakan penerjemah baru
Semoga jelas bahwa panggilan
a
adalah kesalahansumber
sebelum Anda menulis,
set(XXXXX)
Anda telah menggunakan "set" sebagai variabel missumber
Ini akan berhasil:
Namun, jika Anda telah menggunakan "daftar" atau "set" sebagai nama variabel, Anda akan mendapatkan:
misalnya:
Kesalahan yang sama akan terjadi jika Anda menggunakan "daftar" sebagai nama variabel.
sumber
sumber
Kode Anda berfungsi dengan Python 3.2.1 pada Win7 x64
sumber
Coba gunakan kombinasi fungsi peta dan lambda:
Ini adalah pendekatan yang sangat nyaman jika Anda memiliki serangkaian angka dalam string dan Anda ingin mengubahnya menjadi daftar bilangan bulat:
sumber