メソッドが呼び出されるたびにリストまたは辞書の新しいインスタンスを作成するにはどうすればよいですか? 私がやりたいことを比較できる最も近いのはnew
、JavaまたはC#のキーワードです
4 に答える
これらの関数は既に定義されており、組み込み型のコンストラクター(辞書とリスト) があります。
x = dict()
y = list()
これは Java の
Map x = new TreeMap(); // or other dictionary implementation
List y = new ArrayList(); // or other list implementation
辞書の例:
def create_dict():
return {}
リストの例:
def create_list():
return []
使用法:
a = create_dict() #for a new empty dictionary
b = create_list() # for new empty list
これはすべて機能しますが、現状ではそれほど有用ではありません。
デフォルトのリストがあり、それ自体を変更せずL
に等しいリストで作業していることを確認したい場合、ローカル変数を に初期化できます。そうですか?L
L
list(L)
最も一般的な方法は(断然)次のとおりです。
y= [] # new empty list
x= {} # new empty dictionary
なぜそんなに短いのですか?この言語では、このような高レベルのデータ構造の使用が推奨されているためです。
Python では、コンストラクターはクラスの名前 (Java など) で呼び出されますが、new
その他のキーワードは必要ありません。別の回答で述べたように、これにより次の構文も有効になります。
x= list()
y= dict()
ただし、実際にそれらを見つけることはめったにありません。
リスト リテラル ( など[1,2,3,4]
) は、新しいリストを作成し、事前に入力します。辞書リテラル ( など{'Red':'Rojo','Yellow':'Amarillo','Green':'Verde'}
) は、新しい辞書を作成し、それらにも事前入力します。
セット リテラル ( など{'Morning','Afternoon','Evening','Night'}
) も有効です。ただし、空のセットは として作成する必要がありますset()
。構文{}
は、より一般的な空の辞書を作成するために予約されています。