なぜタプルはPythonで不変だと思いますか?
-
順序の維持-タプルは主にPythonで順序を示す方法として定義されています。たとえば、タプルのリストの形式でデータベースからデータを取得する場合、すべてのタプルは、フェッチしたフィールドの順序になります。
-
コピー効率-不変オブジェクトをコピーするのではなく、エイリアスを作成できます(変数を参照にバインドします)
-
比較効率-参照によるコピーを使用している場合、コンテンツではなく場所を比較することで2つの変数を比較できます
-
インターン-不変の値のコピーを最大で1つ保存する必要があり、並行コードで不変オブジェクトへのアクセスを同期する必要はありません
-
constcorrectness-一部の値は変更を許可されるべきではありません。
-
Pythonが関数でタプルを定義できないのはなぜですか?
Python 3.0以降、パックされていないタプルを関数のパラメーターとして定義することはできなくなりました(PEP3113)。これは、関数を次のように定義しようとした場合を意味します- def fn(a,(b,c)): pass Pythonインタープリターは、タプルの最初のブラケットに構文エラーを表示します。代わりに、タプルオブジェクトをパラメーターとして定義し、関数内で解凍します。次のコードでは、2つのポイントのx座標とy座標を表す2つのタプルオブジェクトが、2つのポイント間の距離を計算するためのパラメーターとして渡されます。計算する前に、タプルオブジェ
-
Pythonタプル
Pythonでは、タプルは順序付けられたコレクションです。 および不変 。つまり、タプルにアイテムを追加したり、タプルからアイテムを削除したりすることはできません。 括弧()を使用してタプルを作成します および少なくとも1つのコンマ( , ) 。 タプルは、スライスの結果もタプルになることを除いて、リストと同じようにインデックス付けおよびスライスできます。 タプルを作成する方法 colorsTuple = (red, green, blue) print(colorsTuple) 出力: (red, green, blue) 1つのアイテムのみでタプルを作成する タプルには少なくと