目次
可変で不変とは何ですか?
関数パラメーターの可変オブジェクトの「副作用」
不変のオブジェクトの「一見修正された」ものは実際に再バインディングされています
一般的な誤解:タプルは本当に不変ですか?
ホームページ バックエンド開発 Python チュートリアル Pythonの可変性と不変性の概念の調査

Pythonの可変性と不変性の概念の調査

Jul 08, 2025 am 02:52 AM

Python(リスト、辞書、コレクションなど)の可変オブジェクトは作成後に変更できますが、不変のオブジェクト(整数、浮動小数点数、文字列、タプルなど)はできません。たとえば、文字列操作は新しいオブジェクトを生成し、リストは元のオブジェクトを直接変更します。 1.関数が渡されると、可変オブジェクトには副作用があり、変更は外部に影響します。 2。不変のオブジェクトの操作は実際には再抑制されています。 3.タプルは不変ですが、その中の可変オブジェクトはまだ変更できます。これらの違いを理解することは、エラーを回避し、コード効率を改善するのに役立ちます。

Pythonの可変性と不変性の概念の調査

Pythonの可変で不変のオブジェクトは、変数の動作、関数パラメーター転送、およびデータ処理を理解するための基礎です。これら2つの違いを理解することは、いくつかの一般的な間違いを回避し、より効率的で安全なコードを書くのに役立ちます。

Pythonの可変性と不変性の概念の調査

可変で不変とは何ですか?

Pythonでは、整数、浮動小数点数、文字列、タプルなど、作成されると、不変のオブジェクトを変更することはできません。
可変オブジェクトは、リスト、辞書、コレクションなど、作成後に変更できます。

Pythonの可変性と不変性の概念の調査

簡単な例:文字列s = "hello"を持っていて、 s = " world"を実行する場合、実際には元の文字列にコンテンツを追加するのではなく、新しい文字列オブジェクトを作成して変数sを指します。

対照的に、 lst = [1, 2, 3]リストがある場合、 lst.append(4)を実行した後、元のリストが直接変更され、再割り当てする必要はありません。

Pythonの可変性と不変性の概念の調査

関数パラメーターの可変オブジェクトの「副作用」

可変オブジェクトをパラメーターとして関数に渡すと、関数内のそれを変更すると、関数の外側のオブジェクト自体に影響します。特に初心者にとっては、これはしばしば驚くべきことです。

例えば:

 def add_item(my_list):
    my_list.append(4)

nums = [1、2、3]
add_item(nums)
print(nums)#出力[1、2、3、4]

これは、関数がコピーではなく元のリストへの参照を受信するためです。この「副作用」が必要ない場合は、関数内のコピーをコピーできます。

  • my_list.copy()を使用します
  • またはmy_list[:]
  • またはlist(my_list)

これにより、元のデータへの影響が避けられます。

不変のオブジェクトの「一見修正された」ものは実際に再バインディングされています

不変のオブジェクトを操作する場合、変更は変数が新しいオブジェクトを指すようにします。例えば:

 a = 5
b = a
a = 2
印刷(a)#出力7
印刷(b)#出力5

a = 2は実際にはa = a 2 、つまり新しい整数オブジェクトが作成され、 aが作成され、 b元の5を指しているため、ここではbの値はここでは変わりません。

しかし、それが可変オブジェクトの場合:

 x = [1、2、3]
y = x
X.Append(4)
印刷(x)#[1、2、3、4]
印刷(y)#[1、2、3、4]

この時点で、 xy両方とも同じオブジェクトを指しているため、1つは変更され、もう1つは変更されます。

一般的な誤解:タプルは本当に不変ですか?

多くの人々は、タプルが不変であることを知っていますが、詳細を無視する傾向があります。タプルに変換可能なオブジェクトが含まれている場合、これらのオブジェクトの内容を変更できます。

例えば:

 t =([1、2]、3)
t [0] .append(3)
print(t)#出力([1、2、3]、3)

タプル自体を変更することはできませんが( t[0] = [4, 5] )、その内部のリストを変更できます。これは見落としがちであり、「不変」が常に「完全な凍結」を意味するとは限らないことも示しています。


基本的にそれだけです。可変性と不変の違いを理解することは、より明確なコードを書くのに役立つだけでなく、多くの隠されたバグを避けます。関数パラメーター、可変割り当て、データ構造のネストなどのシナリオでは、行動の違いに特に注意してください。

以上がPythonの可変性と不変性の概念の調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PythonはSQL Server Pyodbcの例に接続します PythonはSQL Server Pyodbcの例に接続します Jul 30, 2025 am 02:53 AM

Pyodbcのインストール:Pipinstallpyodbcコマンドを使用してライブラリをインストールします。 2.接続sqlserver:pyodbc.connect()メソッドを介して、ドライバー、サーバー、データベース、uid/pwdまたはtrusted_connectionを含む接続文字列を使用し、それぞれSQL認証またはWindows認証をサポートします。 3.インストールされているドライバーを確認します:pyodbc.drivers()を実行し、「sqlserver」を含むドライバー名をフィルタリングして、「sqlserverのodbcdriver17」などの正しいドライバー名が使用されるようにします。 4.接続文字列の重要なパラメーター

SQLALCHEMY 2.0 DepRECATION警告と接続閉鎖問題解決ガイド SQLALCHEMY 2.0 DepRECATION警告と接続閉鎖問題解決ガイド Aug 05, 2025 pm 07:57 PM

この記事の目的は、Sqlalchemyの初心者がCreate_Engineを使用したときに遭遇した「removedin20warning」警告を解決することを支援することを支援することを支援することを支援することを目的としています。この記事では、この警告の原因を詳細に説明し、特定の手順とコード例を提供して、警告と接続の問題を排除し、データベースをスムーズにクエリして操作できるようにします。

python shotil rmtreeの例 python shotil rmtreeの例 Aug 01, 2025 am 05:47 AM

shutil.rmtree()は、ディレクトリツリー全体を再帰的に削除するPythonの関数です。指定されたフォルダーとすべてのコンテンツを削除できます。 1.基本的な使用法:shutil.rmtree(PATH)を使用してディレクトリを削除すると、FilenotFounderror、PermissionError、その他の例外を処理する必要があります。 2。実用的なアプリケーション:一時的なデータやキャッシュディレクトリなど、サブディレクトリとファイルを1回クリックして含むフォルダーをクリアできます。 3。注:削除操作は復元されません。 FilenotFounderrorは、パスが存在しない場合に投げられます。許可またはファイル職業のために失敗する可能性があります。 4.オプションのパラメーター:INGRORE_ERRORS = trueでエラーを無視できます

データエンジニアリングのPython etl データエンジニアリングのPython etl Aug 02, 2025 am 08:48 AM

Pythonは、ETLプロセスを実装するための効率的なツールです。 1。データ抽出:データベース、API、ファイル、およびその他のソースからデータを抽出できます。Pandas、Sqlalchemy、Requests、その他のライブラリを介して。 2。データ変換:パンダを使用して、クリーニング、タイプ変換、関連性、集約、その他の操作を使用して、データの品質を確保し、パフォーマンスを最適化します。 3。データの読み込み:PandasのTO_SQLメソッドまたはクラウドプラットフォームSDKを使用して、ターゲットシステムにデータを書き込み、書き込み方法とバッチ処理に注意してください。 4。ツールの推奨事項:気流、ダグスター、長官は、ログアラームと仮想環境を組み合わせて、安定性と保守性を向上させるために、プロセスのスケジューリングと管理に使用されます。

Pythonを使用してExcelからWebフォームにデータ入力を自動化する方法は? Pythonを使用してExcelからWebフォームにデータ入力を自動化する方法は? Aug 12, 2025 am 02:39 AM

Pythonを使用してExcelデータをWebフォームに入力する方法は次のとおりです。最初にPandasを使用してExcelデータを読み取り、次にSeleniumを使用してブラウザを制御してフォームを自動的に入力して送信します。特定の手順には、Pandas、OpenPyXL、Seleniumライブラリのインストール、対応するブラウザドライバーのダウンロード、Pandasを使用してdata.xlsxファイルの名前、電子メール、電話、その他のフィールドを読み取り、セレニウムを介してブラウザを起動してターゲットWebページを開き、フォーム要素を見つけ、レインごとにデータラインを提出します。ループ内のすべてのデータライン。

PythonでSQLクエリを実行する方法は? PythonでSQLクエリを実行する方法は? Aug 02, 2025 am 01:56 AM

対応するデータベースドライバーをインストールします。 2。CONNECT()を使用してデータベースに接続します。 3.カーソルオブジェクトを作成します。 4。Execute()またはexecuteMany()を使用してSQLを実行し、パラメーター化されたクエリを使用して噴射を防ぎます。 5。Fetchall()などを使用して結果を得る。 6。COMMING()は、変更後に必要です。 7.最後に、接続を閉じるか、コンテキストマネージャーを使用して自動的に処理します。完全なプロセスにより、SQL操作が安全で効率的であることが保証されます。

Python Pandasスタイリングデータフレームの例 Python Pandasスタイリングデータフレームの例 Aug 04, 2025 pm 01:43 PM

JupyternotebookでPandasstylingを使用すると、データフレームの美しいディスプレイを実現できます。 1。Highlight_maxとhighlight_minを使用して、各列の最大値(緑)と最小値(赤)を強調表示します。 2.勾配の背景色(ブルースや赤など)をbackground_gradientを介して数値列に追加して、データサイズを視覚的に表示します。 3.カスタム関数Color_ScoreとApplyMapを組み合わせて、異なる分数間隔に対してテキスト色を設定しました(≥90グリーン、80〜89オレンジ、60〜79赤、

Pythonで仮想環境を作成する方法 Pythonで仮想環境を作成する方法 Aug 05, 2025 pm 01:05 PM

Python仮想環境を作成するには、VENVモジュールを使用できます。手順は次のとおりです。1。プロジェクトディレクトリを入力して、python-mvenvenv環境を実行して環境を作成します。 2。SourceENV/bin/Activate to Mac/LinuxおよびEnv \ Scripts \ Windowsにアクティブ化します。 3. PIPINSTALLインストールパッケージ、PIPFREEZE> RECUMESSION.TXTを使用して、依存関係をエクスポートします。 4.仮想環境をGITに提出しないように注意し、設置中に正しい環境にあることを確認してください。仮想環境は、特にマルチプロジェクト開発に適した競合を防ぐためにプロジェクト依存関係を分離でき、PycharmやVSCodeなどの編集者も

See all articles