Python 2.6でセットをリストに変換しようとしています。私はこの構文を使っています:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
しかし、私は以下のスタックトレースを取得します。
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
どうすればこれを修正できますか?
すでにリストです
type(my_set)
>>> <type 'list'>
あなたは何かが好きですか
my_set = set([1,2,3,4])
my_list = list(my_set)
print my_list
>> [1, 2, 3, 4]
編集:最後のコメントの出力
>>> my_list = [1,2,3,4]
>>> my_set = set(my_list)
>>> my_new_list = list(my_set)
>>> print my_new_list
[1, 2, 3, 4]
私はあなたがこのようなことをしたのではないかと思います:
>>> set=set()
>>> set([1,2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable
の代わりに:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
プロセスを短縮しないのはなぜですか。
my_list = list(set([1,2,3,4])
これはあなたのリストから重複を取り除き、あなたにリストを返します。
[編集]あなたが以前に "list"を再定義したようで、それを変数名として使っています。
list = set([1,2,3,4]) # oops
#...
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
そしてあなたが得るでしょう
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
このような問題に悩まされているときはいつでも、あなたが最初に変換したい要素のデータ型を見つけることを試みなさい:
type(my_set)
その後、使用します:
list(my_set)
それをリストに変換する。 pythonの通常のリストと同じように、新しく作られたリストを使うことができます。
最初の行を見直してください。あなたのスタックトレースは明らかにここに貼り付けたコードからのものではないので、私はあなたがしたことを正確には知りません。
>>> my_set=([1,2,3,4])
>>> my_set
[1, 2, 3, 4]
>>> type(my_set)
<type 'list'>
>>> list(my_set)
[1, 2, 3, 4]
>>> type(_)
<type 'list'>
欲しいのはset([1, 2, 3, 4])
です。
>>> my_set = set([1, 2, 3, 4])
>>> my_set
set([1, 2, 3, 4])
>>> type(my_set)
<type 'set'>
>>> list(my_set)
[1, 2, 3, 4]
>>> type(_)
<type 'list'>
「呼び出し不可」の例外は、set()()
- set
インスタンスを呼び出そうとしているようなことをしていることを意味します。
単純に入力してください。
list(my_set)
これは{'1'、 '2'}の形の集合を['1'、 '2']の形のリストに変えるでしょう。
リストではなく、この([1, 2])
構文を使用してセットを作成しているのかどうかわかりません。セットを作成するには、set([1, 2])
を使用する必要があります。
これらの括弧は、あたかもあなたが書いたであろうかのように、単にあなたの表現を覆っているのです。
if (condition1
and condition2 == 3):
print something
本当に無視されることはありませんが、あなたの表現には何もしません。
注:(something, something_else)
はTupleを作成します(それでもリストはありません)。
Pythonは動的型付け言語です。つまり、CまたはC++の場合のように変数の型を定義することはできません。
type variable = value
または
type variable(value)
Pythonでは、型、あるいは型のinit関数(コンストラクタ)を変更して型の変数を宣言する場合は、強制変換を使用します。
my_set = set([1,2,3])
type my_set
答えを<type 'set'>
にします。
あなたがリストを持っているならば、これをしてください:
my_list = [1,2,3]
my_set = set(my_list)