ホームページ >バックエンド開発 >Python チュートリアル >Python でのタプルと辞書の詳細な分析
この記事では主に Python の Tuple と Dict について詳しく紹介しています。必要な方はぜひご覧ください。
はじめに
この記事では、Python のデータ型の Tuple と Dict についての理解と、いくつかの組み込みメソッドの紹介を記録します。以下では多くを語る必要はありません。詳細な紹介を見てみましょう。
タプル
特徴: タプル内のデータは不変
要素の定義: T = (1,)
>>> T=(1,) >>> type(T) <type 'tuple'>
特別なタプル: "変数"タプル
>>> T=(1,2,3,[1,2,3]) >>> T[3][2] = 'vimiix' >>> T (1, 2, 3, [1, 2, 'vimiix'])
祖先は変更されていますが、実際の変更はリスト [1, 2, 3] 内の要素が変更されているのに、祖先 T 内のこのリストのメモリ アドレスは変更されていないことです。
結論: 実際には、可変要素を含む祖先の要素ですが、祖先内の要素のメモリ アドレスは変化していないため、祖先のいわゆる不変性は、要素が指すメモリ アドレスを意味します。は変わりません
Dictionary Dict
特徴:
1. 辞書は Python の唯一のマッピング型です
2. 辞書のキー (KEY) は不変オブジェクトでなければなりません ->辞書はハッシュ アルゴリズムを通じてコンピュータに保存されます。ハッシュ KEY によって特性が計算され、保存されます。KEY が可変の場合、データ カオスが発生します。
>>> D = {1:3,'vimiix':88} >>> type(D) <type 'dict'>
>>> D={[1,2,3]:100} Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> D={[1,2,3]:100} TypeError: unhashable type: 'list' (这里提示list是不能被Hash计算的数据类型,因为list是可变的数据类型) >>>
このエラーからわかるように、辞書のキーは不変オブジェクトのみを使用できます(タプルの祖先はOK)が、辞書の値にはそのような要件はありません
キー-値のペアはコロン「:」で区切られ、それぞれのペアはカンマ「,」で区切られ、すべて中括弧「{}」で囲まれています
辞書内のキーと値のペアは順序が正しくありません。したがって、インデックスによってアクセスすることはできず、対応するデータはキー値を通じてのみ取得できます
拡張: 定義プロセス中に同じキーが出現した場合、最終的に保存されるときに最後のキーと値のペアが保持されます)
>>> D= {1:2,1:3} >>> D {1: 3}
作成とアクセス
最初の作成方法: 花を通して直接括弧内に作成するキーと値のペアが含まれています
2 番目の作成方法: 組み込み関数 dict() を作成する場合は注意してください。 <code>dict()
括弧内にパラメータは 1 つだけ指定でき、すべてのキーと値のペアを囲む必要がありますdict()
来创建,注意!dict()
括号内只能有一个参数,要把所有的键值对括起来
(1)
>>> D =dict((1,2),(3,4),(5,6)) Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> D =dict((1,2),(3,4),(5,6)) TypeError: dict expected at most 1 arguments, got 3 >>> D =dict(((1,2),(3,4),(5,6))) >>> D {1: 2, 3: 4, 5: 6}
(2)还可以指定关键字参数
>>> D=dict(vimiix = 'VIMIIX') >>> D {'vimiix': 'VIMIIX'}
这里的小写‘vimiix'不可以加单引号,加了会报错!
(3)dict的内置方法 .fromkeys 有两个参数
>>> D = dict.fromkeys((1,'vimiix'),('common','value')) >>> D {1: ('common', 'value'), 'vimiix': ('common', 'value')} >>>
实际的生产过程中,都是使用字典生成式来创建,根据现有的数据来生成对应的数据,有数据才有意义。
字典生成式栗子:
>>> L1 = [1,2,3] >>> L2 = ['a','v','vimiix'] >>> D={a:b for a in L1 for b in L2} >>> D {1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}
此处只是一个生成式的栗子,但并不是理想答案,待学习如何生成一一对应的键值对
字典的内置方法:
get()
:
获取键所对应的值,如果未找到返回None,找到返回对应的值
pop(key)
:
弹出key对应的值,默认最后一个
popitem()
:
随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()
方法效率很高。
update()
>>> D.update({'newitem':'update'}) >>> D {'newitem': 'update', 1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}(2) キーワード パラメータを指定することもできます
rrreee小文字ここでは一重引用符を「vimiix」に追加できません。追加しないとエラーが報告されます。 (3) dict .fromkeys の組み込みメソッドには 2 つのパラメータがありますrrreee
実際の制作プロセスでは、辞書生成を使用して、既存のデータに基づいて対応するデータを作成します。データのみが意味を持ちます。 🎜🎜辞書生成クリ:🎜rrreee🎜これは単なる生成クリですが、理想的な答えではありません。1 対 1 のキーと値のペアを生成する方法を学ぶ必要があります🎜🎜🎜辞書の組み込みメソッド: 🎜🎜🎜 get()
:🎜🎜キーに対応する値を取得します。見つからない場合は、対応する値を返します。🎜🎜pop (key)
:🎜🎜 キーに対応する値をポップします。 デフォルトの最後の 🎜🎜popitem()
:🎜🎜 キーと値のペア (アイテム) をランダムに返して削除します。辞書にあります。なぜランダムに削除されるのでしょうか?辞書には順序がないため、いわゆる「最後の項目」などの順序はありません。作業中に項目を 1 つずつ削除する必要がある場合は、popitem()
メソッドを使用すると非常に効率的です。 🎜🎜update()
:🎜🎜キーと値のペアを更新または追加します (存在する場合は変更し、欠落している場合は奨励します)🎜rrreee🎜🎜🎜概要🎜🎜🎜以上がPython でのタプルと辞書の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。