ホームページ  >  記事  >  バックエンド開発  >  Python でのタプルと辞書の詳細な分析

Python でのタプルと辞書の詳細な分析

Y2J
Y2Jオリジナル
2017-05-03 15:59:051686ブラウズ

この記事では主に Python の Tuple と Dict について詳しく紹介しています。必要な方はぜひご覧ください。

はじめに

この記事では、Python のデータ型の Tuple と Dict についての理解と、いくつかの組み込みメソッドの紹介を記録します。以下では多くを語る必要はありません。詳細な紹介を見てみましょう。

タプル

特徴: タプル内のデータは不変

要素の定義: T = (1,)

>>> T=(1,)
>>> type(T)
<type &#39;tuple&#39;>

特別なタプル: "変数"タプル

>>> T=(1,2,3,[1,2,3])
>>> T[3][2] = &#39;vimiix&#39;
>>> T
(1, 2, 3, [1, 2, &#39;vimiix&#39;])

祖先は変更されていますが、実際の変更はリスト [1, 2, 3] 内の要素が変更されているのに、祖先 T 内のこのリストのメモリ アドレスは変更されていないことです。

結論: 実際には、可変要素を含む祖先の要素ですが、祖先内の要素のメモリ アドレスは変化していないため、祖先のいわゆる不変性は、要素が指すメモリ アドレスを意味します。は変わりません

Dictionary Dict

特徴:

1. 辞書は Python の唯一のマッピング型です

2. 辞書のキー (KEY) は不変オブジェクトでなければなりません ->辞書はハッシュ アルゴリズムを通じてコン​​ピュータに保存されます。ハッシュ KEY によって特性が計算され、保存されます。KEY が可変の場合、データ カオスが発生します。

>>> D = {1:3,&#39;vimiix&#39;:88}
>>> type(D)
<type &#39;dict&#39;>
>>> 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: &#39;list&#39; (这里提示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 = &#39;VIMIIX&#39;)
>>> D
{&#39;vimiix&#39;: &#39;VIMIIX&#39;}

这里的小写‘vimiix'不可以加单引号,加了会报错!

(3)dict的内置方法 .fromkeys 有两个参数

>>> D = dict.fromkeys((1,&#39;vimiix&#39;),(&#39;common&#39;,&#39;value&#39;))
>>> D
{1: (&#39;common&#39;, &#39;value&#39;), &#39;vimiix&#39;: (&#39;common&#39;, &#39;value&#39;)}
>>>

实际的生产过程中,都是使用字典生成式来创建,根据现有的数据来生成对应的数据,有数据才有意义。

字典生成式栗子:

>>> L1 = [1,2,3]
>>> L2 = [&#39;a&#39;,&#39;v&#39;,&#39;vimiix&#39;]
>>> D={a:b for a in L1 for b in L2}
>>> D
{1: &#39;vimiix&#39;, 2: &#39;vimiix&#39;, 3: &#39;vimiix&#39;}

此处只是一个生成式的栗子,但并不是理想答案,待学习如何生成一一对应的键值对

字典的内置方法:

get() :

获取键所对应的值,如果未找到返回None,找到返回对应的值

pop(key) :

弹出key对应的值,默认最后一个

popitem() :

随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高。

update()

(1)

>>> D.update({&#39;newitem&#39;:&#39;update&#39;})
>>> D
{&#39;newitem&#39;: &#39;update&#39;, 1: &#39;vimiix&#39;, 2: &#39;vimiix&#39;, 3: &#39;vimiix&#39;}

(2) キーワード パラメータを指定することもできます

rrreee小文字ここでは一重引用符を「vimiix」に追加できません。追加しないとエラーが報告されます。 (3) dict .fromkeys の組み込みメソッドには 2 つのパラメータがありますrrreee

実際の制作プロセスでは、辞書生成を使用して、既存のデータに基づいて対応するデータを作成します。データのみが意味を持ちます。 🎜🎜辞書生成クリ:🎜rrreee🎜これは単なる生成クリですが、理想的な答えではありません。1 対 1 のキーと値のペアを生成する方法を学ぶ必要があります🎜🎜🎜辞書の組み込みメソッド: 🎜🎜🎜 get() :🎜🎜キーに対応する値を取得します。見つからない場合は、対応する値を返します。🎜🎜pop (key):🎜🎜 キーに対応する値をポップします。 デフォルトの最後の 🎜🎜popitem():🎜🎜 キーと値のペア (アイテム) をランダムに返して削除します。辞書にあります。なぜランダムに削除されるのでしょうか?辞書には順序がないため、いわゆる「最後の項目」などの順序はありません。作業中に項目を 1 つずつ削除する必要がある場合は、popitem() メソッドを使用すると非常に効率的です。 🎜🎜update() :🎜🎜キーと値のペアを更新または追加します (存在する場合は変更し、欠落している場合は奨励します)🎜rrreee🎜🎜🎜概要🎜🎜🎜

以上がPython でのタプルと辞書の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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