0

オンラインで見つけたPythonコードのロジックについて質問があります。これは、ペアでフォーマットされたリストからdictを定義するために見事に機能します(つまり: "one 1/n two 2/n three 3/n")コードは次のとおりです。

dict_number= {term:int(score) for (term,score) in list_number}

List_number は、値が保持されるリストです。Python がどのように、すべての文字列を用語として割り当て、すべての文字列を値 (この場合はその文字列の int) として割り当てる必要があるかを理解しているかどうかはわかりません... 用語とスコアの両方このコード行の前に定義されておらず、どういうわけかpythonはこれを理解しています...これがどのように機能するか考えていますか?

4

1 に答える 1

3

これは辞書内包表記と呼ばれ、Python 2.7 で導入されました。これは、式を使用して辞書を作成する簡単な方法です。

その行をより長く書く方法は次のとおりです。

dict_number = {}  # an empty dictionary

for term,score in list_number:
    dict_number[term] = int(score)

Python には、他の言語で慣れ親しんだ変数はありません。他のほとんどの言語では、変数は特定の型の値を保持できる「ボックス」です。ボックスに何かを保持するには、まず型を記述してボックスを作成する必要があります。

int x;
x = 1;

Python には、値を指す名前の概念があります。Python の「変数」は単なる名前であり、任意の型の任意の値を指すことできます。型を持つのは値だけで、名前には型がありません。その柔軟性により、名前を事前に「初期化」する必要はありません。必要なときに使用するだけです。残りは Python が処理します。

于 2013-05-08T06:46:19.693 に答える