4 Pythonの組み込みデータ構造:辞書、リスト、セット、タプル
公開: 2020-03-24この記事では、Pythonのデータ構造に焦点を当て、トピックを明確に理解するのに役立ちます。 あなたはそれらが何であるか、そしてそれらがどのように機能するかを知るでしょう。 また、ここで共有したトピックに関して疑いの余地がないように、多数の例を共有しました。
それで、それ以上の苦労なしに、始めましょう。
目次
データ構造とは何ですか?
データ構造を使用すると、データを効果的かつ効率的に整理および管理できます。 データのアクセシビリティを向上させます。 適切なデータ構造が整っている場合は、保存されているデータの変更も非常に簡単になります。 データを整理して保存できるため、後で問題に直面することなく同じ操作を実行できます。
Pythonには2種類のデータ構造があります。 Pythonが暗黙的にサポートするデータ構造は、Set、Dictionary、List、およびTupleです。 これらはPythonの組み込みデータ構造です。
次に、機能をより適切に制御するために自分で作成できるデータ構造があります。 これらはユーザー定義のデータ構造であり、リンクリスト、グラフ、ツリー、スタック、キュー、およびハッシュマップが含まれます。 ユーザー定義のデータ構造は、他のプログラミング言語でも利用できます。
続きを読む:Rで最も一般的に使用される6つのデータ構造
Pythonの組み込みデータ構造
Pythonには複数の組み込みデータ構造があります。 これらの統合されたデータ構造は、プログラミングの問題を迅速かつ簡単に解決するのに役立ちます。 前述したように、Pythonには次の統合データ構造があります。
- 辞書
- リスト
- セット
- タプル
それらのそれぞれについて詳しく説明しましょう。
1.辞書
キーと値のペアを格納するために辞書を使用します。 物理辞書にその意味とともに単語が格納されているのと同じように、Pythonの辞書にはキーと値のペアが格納されます。 用語はキーですが、それらの単語に関連するさまざまな意味は値です。 値を使用すると、キーにアクセスできます。
花中括弧を使用して辞書を作成できます。 この目的でdict()関数を使用することもできます。 次に例を示します。
my_dict ={}#empty辞書
print(my_dict)
my_dict = {1:'A'、2:'B'}#dictionaryと要素
print(my_dict)
上記のコードの出力:
{}
{1:'A'、2:'B'}
キーを使用して辞書の値を変更できます。 値を変更するには、最初にキーにアクセスする必要があります。 キーを見つけたら、必要なキーと値のペアを追加するだけで、目的の結果を得ることができます。
my_dict = {'First':'A'、'Second':'B'}
print(my_dict)
my_dict ['Second'] ='C ++'#changing element
print(my_dict)
my_dict ['Third'] ='Ruby'#キーと値のペアを追加
print(my_dict)
上記のコードの出力:
{'最初の':'A'、'2番目の':'B'}
{'最初の':'A'、'2番目の':'C'}
{'最初の':'A'、'2番目の':'C'、'3番目の':'D'}
pop()関数を使用して、辞書の値を削除できます。 pop()関数は、削除した値を返します。 popitem()関数を使用して、キーと値のペアを取得できます。 ペアのタプルを返します。 clear()関数を使用して、辞書全体をクリアすることもできます。 次に例を示します。
my_dict = {'First':'A'、'Second':'B''、' Third':' C'}
a = my_dict.pop('Third')#pop要素
print('値:'、a)
print('辞書:'、my_dict)
b = my_dict.popitem()#キーと値のペアをポップします
print('キー、値ペア:'、b)
print('Dictionary'、my_dict)
my_dict.clear()#empty辞書
print('n'、my_dict)
上記のコードの出力:
値:C
辞書:{'最初の':'A'、'2番目の':'B'}
キーと値のペア:('Second'、'B')
辞書{'First':'A'}
{}
また読む: Pythonプロジェクトのアイデアとトピック
2.リスト
リストを使用してデータを順番に保存します。 リストのすべての要素には、インデックスとも呼ばれるアドレスがあります。 リストのインデックス値は0からリストに存在する最後の要素になり、その名前は正のインデックスになります。 同様に、最後の要素から最初の要素に戻って-1から数えると、負のインデックス付けと呼ばれます。
角かっこを使用してリストを作成し、必要に応じて要素を追加できます。 角かっこを空のままにすると、リストに要素が含まれなくなり、リストも空になります。 リストの例を次に示します。
my_list = []#空のリストを作成
print(my_list)
my_list = [A、B、C、'example'、Z]#データを使用してリストを作成する
print(my_list)
上記のコードの出力:
[]
[A、B、C、'例'、Z]
insert()、extent()、およびappend()関数を使用して、リストに要素を追加できます。 insert()関数は、インデックス値に渡された要素を追加します。 insert()関数は、リストのサイズも大きくします。
append()関数を使用すると、渡されたすべての要素を単一の要素として追加できます。 一方、extend()関数は、要素を1つずつ追加できます。
次に例を示します。
my_list = [A、B、C]
print(my_list)
my_list.append([555、12])#単一の要素として追加
print(my_list)
my_list.extend([234、'more_example'])#異なる要素として追加
print(my_list)
my_list.insert(1、'insert_example')#要素を追加i
print(my_list)
上記のコードの出力:
[A、B、C]
[A、B、C、[555、12]]
[A、B、C、[555、12]、234、'more_example']

[A、'insert_example'、B、C、[555、12]、234、'more_example']
リストを操作しているときに、いくつかの要素も削除する必要があります。 'del'キーワードを使用できます。 これはPythonの組み込みキーワードであり、何も返しません。 要素を元に戻したい場合は、pop()関数を使用する必要があり、その値から要素を削除するには、remove()関数を使用する必要があります。 次に例を示します。
my_list = [A、B、C、'例'、Z、10、30]
del my_list[5]#インデックス5の要素を削除
print(my_list)
my_list.remove('example')#値を持つ要素を削除します
print(my_list)
a = my_list.pop(1)リストからの#pop要素
print('ポップされた要素:'、a、'残りのリスト:'、my_list)
my_list.clear()#リストを空にする
print(my_list)
上記のコードの出力:
[A、B、C、「例」、Z、30]
[A、B、C、Z、30]
ポップされた要素:残りの2つのリスト:[A、C、Z、30]
[]
Pythonでインデックス値を渡して、必要な値を取得できます。
my_list = [A、B、C、'例'、Z、10、30]
my_listの要素の場合:#access要素を1つずつ
print(要素)
print(my_list)#すべての要素にアクセス
print(my_list [3])#accessindex3要素
print(my_list [0:2])#0から1までの要素にアクセスし、2を除外します
print(my_list [::-1])#access要素を逆に
上記のコードの出力:
A
B
C
例
Z
10
30
[A、B、C、「例」、Z、10、30]
例
[A、B]
[30、10、Z、'例'、3、2、1]
3.セット
ユニークで注文されていないアイテムのコレクションは、セットと呼ばれます。 そのため、何らかの理由でデータを繰り返すと、セットに1回だけ表示されます。 Pythonのセットは、数学で読んだセットに似ています。 それらのプロパティからそれらの機能まで、あなたはそれらの間でたくさんの類似点を見つけるでしょう。
花の中括弧を使用してその値を渡すことにより、セットを作成できます。 次に例を示します。
my_set = {A、B、C、D、E、E、E} #create set
print(my_set)
上記のコードの出力:
{A、B、C、D、E}
前述したように、Pythonのセットの算術演算で実行するセットのすべての機能を実行できます。 union()関数を使用すると、2つのセットに存在するデータを組み合わせることができます。 交差()関数は、前述の両方のセットに存在するデータを提供します。
両方のセットで使用可能なデータを削除し、それらの間で共通ではないデータを提供するdifference()関数があります。 symmetric_difference()関数は、これらのセットに残っているデータを提供します。
my_set = {A、B、C、D}
my_set_2 = {C、D、E、F}
print(my_set.union(my_set_2)、'———-'、my_set | my_set_2)
print(my_set.intersection(my_set_2)、'———-'、my_set&my_set_2)
print(my_set.difference(my_set_2)、'———-'、my_set – my_set_2)
print(my_set.symmetric_difference(my_set_2)、'———-'、my_set ^ my_set_2)
my_set.clear()
print(my_set)
上記のコードの出力:
{A、B、C、D、E、F} ———- {A、B、C、D、E、F}
{C、D} ———- {C、D}
{A、B} ———- {A、B}
{A、B、E、F} ———- {A、B、E、F}
セットする()
また読む:インドのPython開発者給与
4.タプル
タプルはリストに似ていますが、タプルにデータを入力すると、変更可能でない限り、データを変更することはできません。 それらを理解するのは少し難しいかもしれませんが、心配しないでください。サンプルコードはその点で役立つかもしれません。 tuple()関数を使用してタプルを作成できます。
my_tuple =(A、B、C)#create tuple
print(my_tuple)
上記のコードの出力:
(A、B、C)
タプルの値にアクセスする方法は、リストの場合と同じです。
my_tuple2 =(A、B、C、'アップグレード')#access要素
my_tuple2のxの場合:
print(x)
print(my_tuple2)
print(my_tuple2 [0])
print(my_tuple2 [:])
上記のコードの出力:
A
B
C
アップグレード
(A、B、C、「アップグレード」)
A
(A、B、C、「アップグレード」)
結論
これで、Pythonのさまざまなデータ構造に精通している必要があります。 この記事がお役に立てば幸いです。 データ構造は、データの整理、管理、およびアクセスを支援する上で重要な役割を果たします。 選択できるオプションはたくさんあり、それぞれに特定の用途があります。
Pythonとデータ構造について詳しく知りたい場合は、コースをご覧ください。
python、データサイエンスのすべてについて知りたい場合は、IIIT-BとupGradのデータサイエンスのPGディプロマをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界とのメンターシップを提供します。専門家、業界のメンターと1対1で、400時間以上の学習とトップ企業との仕事の支援。
辞書のデータ型はいつ使用されますか?
ディクショナリは、キーと値のペアに格納されるデータのコレクションとしてPythonで使用される貴重なデータ型として定義できます。 現在、ディクショナリの値は任意のデータ型にすることができますが、キーはタプル、整数、文字列などの不変のデータ型である必要があります。
辞書は、データのコレクション全体を調べなくてもすぐに値を見つけたい場合に非常に便利です。 それ以外に、データの順序が重要でない場合は、辞書も非常に役立ちます。 ディクショナリデータ型は、リストやタプルと比較してより多くのスペースを占める傾向があるため、メモリの考慮が重要な要素ではない場合に推奨されます。
リストとタプルの違いは何ですか?
リストとタプルはどちらも、Pythonでデータのコレクションを格納するのに役立つシーケンスデータ型です。 両方の最も重要な違いは、リストは変更可能であるのに対し、タプルは不変であるということです。 その上、反復の影響は、リストの場合と比較してタプルの方がはるかに高速です。
挿入および削除操作を実行する場合は、リストを使用すると簡単に実行できます。 同時に、タプルで要素にアクセスしやすくなります。 データ構造の使用を決定するもう1つの重要な要素は、メモリです。 ここで、リストはタプルと比較してより多くのメモリを消費する傾向があります。
セットはリストとどう違うのですか?
リストは必ずしも同種である必要はないため、Pythonで最も強力なツールと見なされています。 リストとセットの両方に、あらゆる種類のデータ型を含めることができます。 現在、リストには重複する要素を含めることができますが、セットに重複を含めることはできず、単にセットから消えます。
要素の順序はリストで維持されますが、セットで要素の順序を維持することはできません。 リストは多くの計算スペースを占めるため、膨大な時間がかかることになります。 一方、セットはルックアップを実行するためにハッシュを利用し、リストよりもはるかに高速になります。