ホームページ >バックエンド開発 >Python チュートリアル >Python入門学習のデータ構造
一変数
Python の変数は、C/C++ の変数とは異なります。 C/C++ では変数の本質はメモリのアドレスですが、Python では変数を定義して値を代入するときは次のようになります:
a='ABC'
Python インタプリタは 2 つのことを行います。内容: (1) メモリ内に「ABC」という文字列を作成します。(2) メモリ内に a という名前の変数を作成し、それを「ABC」にポイントします。言い換えれば、Python は C/C++ よりも多くのメモリを消費します。ここでは、Python で変数の定義を正しく処理する必要があります。
2 エンコーディング
エンコーディングの問題に関しては、歴史的な要因が関係しています。コンピューターは最初に米国で製造されたため、最初は一般的に使用される 127 文字のみがコンピューターにエンコードされ、それが ASCII コードでした。ただし、後の開発では中国語などの文字を処理する必要があります。この時点では 1 バイトでは不十分で、少なくとも 2 バイトを使用する必要があります。世界中のすべての言語を扱うために、この問題を解決するために Unicode が発明されました。 Unicode は通常、1 文字を表すために 2 バイトを使用しますが、一部のリモート文字では 4 バイトを使用する必要がある場合があります。
Unicodeの導入により、複数言語のエンコーディングの問題は解決されましたが、依然としてリソースの無駄が使用されています。 Unicode エンコーディングが一律に使用されているにもかかわらず、すべてのテキストが英語である場合、大量のメモリを無駄にしないでしょうか?この問題を解決するために、後に UTF-8 エンコーディングが導入されました。 UTF-8 エンコードでは、Unicode 文字は文字が占有する必要のあるバイト数に応じて割り当てられます。たとえば、英語の文字は 1 バイトにエンコードされ、中国語の文字は通常 3 バイトにエンコードされます。これにより、メモリを大幅に節約できます。
3つのリストとタプル
リストとタプルはどちらもPythonの組み込みデータ型です。違いは、タプルが初期化されると変更できないことです。次のようにリストを定義します:
#define a list
l=['Michael','Luffy','Nancy']
リストは順序付けされたコレクションであり、C/C++ の配列と同じであり、添字の開始0 から、要素はいつでも追加および削除できます。リストに対して実行できる操作は、append()、insert()、pop()、および [] です。
もちろんリストは次のように入れ子にすることができます:
#define a nest list
l=['Michael','Luffy','Nancy', ['Corey','Jason']]
タプル以下に示すように、初期化中に値を割り当てる必要があります:
#define a tuple
t=('Michael','Luffy','Nancy')
ここでタプルの不変性について説明する必要があります。タプルの不変性は、その要素を「指す」ことのみを目的としています。たとえば、上記の例では、タプルはそれぞれ「マイケル」、「ルフィ」、「ナンシー」を指します。変更できないのは、それのみです。常にこれらの文字列を指します。定義後に他の文字列を指すことはできません。
「不変」の本当の意味を理解すると、内容を変更できるタプルを定義できます。次のように:
#変更可能なタプルを定義します
t=('Michael','Luffy','Nancy',['Corey','Jason'])
t[3][0]='Jefrey'
t [ 3][1]='Avery'
上記のコードからわかるように、最初に t という名前のタプルを定義します。データを変更した後、初期化中に指定されたリストは変更されませんが、リストの内容は変更されます。これは Python では許可されています。
IV dict
Pythonのdictとは、c/c++のマップであり、キーと値のペアで構成される構造体です。 dict について注意する必要があるのは、そのキー要件です。dict では、キーが不変オブジェクトである必要があります。これは、dict がキーに基づいて Value の格納場所を計算するため、毎回同じキーが計算されて結果が異なると、このキーを介して場所を計算するアルゴリズムが dict 内で混乱してしまうためです。ハッシュアルゴリズム。
Pythonでは、文字列と整数は不変オブジェクトですが、リストは変更可能でキーとして使用できません。
五つの追記
以上はPython学習の個人的なまとめです 間違い等ありましたらメッセージをお願いします! ! !
上記は Python 入門学習用のデータ構造の内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。