推奨事項: NSDT シーン エディターを使用して 3D アプリケーション シーンを迅速に構築する
Python データ構造の概要
プログラミングの方法を学ぶとき、このタスクに使用する特定のプログラミング言語に関係なく、新しく選択した分野にはいくつかの主要なトピックがあり、触れる内容のほとんどがこれらに分類できることがわかります。これらの一部を一般的な順序で示すと、構文 (言語の語彙)、コマンド (単語を便利な方法で組み合わせたもの)、フロー制御 (コマンドの実行順序を指示する方法)、アルゴリズム (実行するもの) です。特定の問題を解決するために行うこと) ステップ...どうしてこれがこのようなわかりにくい言葉になったのでしょうか?最後に、データ構造 (アルゴリズムの実行中にデータ操作 (これも...一連のステップ) に使用する仮想リポジトリ) です。
基本的に、一連のコマンドをアルゴリズムのステップにつなぎ合わせて問題の解決策を実装したい場合は、ある時点でデータを処理する必要があり、データ構造が不可欠になります。このようなデータ構造は、データを効率的に整理して保存する方法を提供し、有用な機能を実行し、適切に拡張できる高速なモジュール式コードを作成するために不可欠です。Python は、独自の組み込みデータ構造セットを備えた特別なプログラミング言語です。
このチュートリアルでは、次の 4 つの基本的な Python データ構造に焦点を当てます。
- リスト - 順序付けされ、変更可能で、要素の重複が許可されます。データシーケンスを保存するために使用されます。
- タプル - 順序付けされ、不変で、要素の重複を許可します。それらは不変のリストであると考えてください。
- Dictionary - 順序付けされていない、変更可能な、キーと値のペアのマップ。データをキーと値の形式で保存する場合に便利です。
- セット - 順序付けされておらず、変更可能で、固有の要素が含まれています。メンバーシップのテストや重複の排除に役立ちます。
Python は、基本的なデータ構造に加えて、コーディング機能をさらに強化できるヒープ、キュー、リンク リストなどのより高度な構造も提供します。これらの高度な構造は、より複雑なデータ処理を可能にするために基礎となる構造の上に構築され、特殊なシナリオでよく使用されます。ただし、これに限定されず、既存のすべての構造をベースとして使用して独自の構造を実装することもできます。ただし、リスト、タプル、辞書、セットはより高度なデータ構造の構成要素であるため、これらを理解することが依然として重要です。
このガイドは、これらの核となる構成要素を明確かつ簡潔に理解できるようにすることを目的としています。Python の学習を始めるにあたり、次のセクションでは基本概念と実践的なアプリケーションについて説明します。リストの作成と操作からコレクションの独自機能の活用まで、このチュートリアルではコーディングで優れたスキルを身につけることができます。
ステップ 1: Python でリストを操作する
Pythonのリストとは何ですか?
Python のリストは、さまざまなオブジェクトを格納できる順序付けされた変更可能なデータ型であり、要素の繰り返しを許可します。リストは角括弧を使用し、要素をカンマで区切って定義します。[ ]
例えば:
fibs = [0, 1, 1, 2, 3, 5, 8, 13, 21]
リストは、一連のデータを整理して保存するのに役立ちます。
リストの作成
リストには、文字列、整数、ブール値などのさまざまなデータ型を含めることができます。例えば:
mixed_list = [42, "Hello World!", False, 3.14159]
動作リスト
リスト内の要素にアクセス、追加、変更、削除できます。例えば:
# Access 2nd element (indexing begins at '0')
print(mixed_list[1])
# Append element
mixed_list.append("This is new")
# Change element
mixed_list[0] = 5
# Remove last element
mixed_list.pop(0)
便利なリスト方法
便利なリスト組み込みメソッドには次のものがあります。
sort()
- リストを所定の位置に並べ替えるappend()
- リストの最後に要素を追加しますinsert()
- インデックスに要素を挿入pop()
- インデックスの要素を削除しますremove()
- 最初に出現した値を削除します。reverse()
- リストをその場で反転します
リストの実践的な例
# Create shopping cart as a list
cart = ["apples", "oranges", "grapes"]
# Sort the list
cart.sort()
# Add new item
cart.append("blueberries")
# Remove first item
cart.pop(0)
print(cart)
出力:
['grapes', 'oranges', 'blueberries']
ステップ 2: Python のタプルについて学ぶ
タプルとは何ですか?
タプルは、リストと同様に、Python の別のシーケンス データ型です。ただし、リストとは異なり、タプルは不変です。つまり、タプルの要素は一度作成されると変更できません。これらは、要素を括弧で囲むことによって定義されます。( )
# Defining a tuple
my_tuple = (1, 2, 3, 4)
タプルを使用する場合
タプルは通常、変更すべきではない項目のコレクションに使用されます。タプルはリストよりも高速なため、読み取り専用操作に最適です。一般的な使用例には次のようなものがあります。
- 定数または構成データを保存する
- 複数のコンポーネントを含む関数の戻り値
- 辞書キーはハッシュ可能であるため
タプル要素にアクセスする
タプル内の要素へのアクセスは、リストの要素へのアクセスと似ています。インデックス作成とスライスは同じように機能します。
# Accessing elements
first_element = my_tuple[0]
sliced_tuple = my_tuple[1:3]
タプルの操作
タプルは不変であるため、多くのリスト操作が適用される場合と適用されない場合があります。ただし、できることはまだいくつかあります。append()
remove()
- 連結:演算子を使用してタプルを結合します。
+
concatenated_tuple = my_tuple + (5, 6)
- 繰り返し:演算子を使用してタプルを繰り返します。
*
repeated_tuple = my_tuple * 2
- メンバーシップ:キーワードを持つ要素がタプル内に存在するかどうかを確認します。
in
exists = 1 in my_tuple
タプルメソッド
タプルは不変であるため、リストに比べて組み込みメソッドの数が少なくなります。いくつかの便利な方法は次のとおりです。
计数()
:特定の要素の出現数をカウントします。
count_of_ones = my_tuple.count(1)
索引()
:値が最初に出現するインデックスを検索します。
index_of_first_one = my_tuple.index(1)
タプルのパッキングとアンパック
タプルのパッキングとアンパッキングは、Python の便利な機能です。
- ラッピング:単一のタプルに複数の値を代入します。
packed_tuple = 1, 2, 3
- 開く:タプル要素を複数の変数に割り当てます。
a, b, c = packed_tuple
不変だが厳密ではない
タプル自体は不変ですが、リストなどの変更可能な要素を含めることができます。
# Tuple with mutable list
complex_tuple = (1, 2, [3, 4])
タプル自体を変更することはできませんが、タプル内の可変要素は変更できることに注意してください。
ステップ 3: Python で辞書をマスターする
Python の辞書とは何ですか?
Python の辞書は、一意のキーと値のマッピングを保存するために使用される、順序付けされていない変更可能なデータ型です。ディクショナリは中括弧を使用して記述され、コンマで区切られたキーと値のペアで構成されます。{ }
例えば:
student = {"name": "Michael", "age": 22, "city": "Chicago"}
辞書は、データを構造化して保存し、キーによって値にアクセスするのに役立ちます。
辞書の作成
ディクショナリ キーは、文字列、数値、タプルなどの不変オブジェクトである必要があります。ディクショナリ値は任意のオブジェクトにすることができます。
student = {"name": "Susan", "age": 23}
prices = {"milk": 4.99, "bread": 2.89}
操作辞書
要素はキーを使用してアクセス、追加、変更、削除できます。
# Access value by key
print(student["name"])
# Add new key-value
student["major"] = "computer science"
# Change value
student["age"] = 25
# Remove key-value
del student["city"]
便利な辞書メソッド
便利な組み込みメソッドには次のようなものがあります。
keys()
- リターンキーリストvalues()
・戻り値一覧items()
- (キー, 値) タプルを返しますget()
- キーエラーを避けるためにキーの値を返しますpop()
- キーを削除して値を返すupdate()
- 複数のキー値を追加する
辞書の実践的な例
scores = {"Francis": 95, "John": 88, "Daniel": 82}
# Add new score
scores["Zoey"] = 97
# Remove John's score
scores.pop("John")
# Get Daniel's score
print(scores.get("Daniel"))
# Print all student names
print(scores.keys())
ステップ 4: Python でコレクションを探索する
Python の Set とは何ですか?
Python のコレクションは、一意で不変のオブジェクトの順序付けされていない変更可能なコレクションです。コレクションは中括弧を使用して記述されますが、辞書とは異なり、キーと値のペアはありません。{ }
例えば:
numbers = {1, 2, 3, 4}
セットは、メンバーシップのテスト、重複の削除、数学的演算に役立ちます。
セットの作成
コレクションをコンストラクターに渡すことで、リストからコレクションを作成できます。set()
my_list = [1, 2, 3, 3, 4]
my_set = set(my_list) # {1, 2, 3, 4}
コレクションには、文字列、ブール値などの混合データ型を含めることができます。
操作セット
要素はコレクションに追加したり、コレクションから削除したりできます。
numbers.add(5)
numbers.remove(1)
便利な収集操作
便利な集合演算には次のようなものがあります。
union()
- 返された 2 つのグループの結合intersection()
- セットの共通部分を返しますdifference()
- セット間の差を返しますsymmetric_difference()
- 対称差を返します
コレクションの使用例
A = {1, 2, 3, 4}
B = {2, 3, 5, 6}
# Union - combines sets
print(A | B)
# Intersection
print(A & B)
# Difference
print(A - B)
# Symmetric difference
print(A ^ B)
ステップ 5: リスト、辞書、セットを比較する
機能の比較
このチュートリアルで説明した 4 つの Python データ構造の簡単な比較を次に示します。
構造 | 注文 | 変数 | 繰り返し要素 | 使用例 |
---|---|---|---|---|
リスト | はい | はい | はい | 保存順序 |
元 | はい | いいえ | はい | 不変シーケンスを保存する |
辞書 | いいえ | はい | キー: いいえ 値: はい |
キーと値のペアを保存する |
設定 | いいえ | はい | いいえ | 重複の排除、メンバーのテスト |
各データ構造をいつ使用するか
これは、特定の状況で最初にどの構造に頼るべきかについてのソフトガイドと考えてください。
- シーケンスベースの順序付けされたデータにはリストを使用します。スタック/キューに便利です。
- 順序付けされた不変シーケンスにはタプルを使用します。変更すべきでない要素の固定コレクションが必要な場合に便利です。
- Key-Value データには辞書を使用します。関連する属性を保存するために使用されます。
- セットを使用して、一意の要素と数学的演算を保存します。
4 つのデータ構造すべてを使用した実践的な例
単一行よりも少し複雑な例で、これらの構造がどのように連携するかを見てみましょう。
# Make a list of person names
names = ["John", "Mary", "Bob", "Mary", "Sarah"]
# Make a tuple of additional information (e.g., email)
additional_info = ("[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]")
# Make set to remove duplicates
unique_names = set(names)
# Make dictionary of name-age pairs
persons = {}
for name in unique_names:
persons[name] = random.randint(20,40)
print(persons)
出力:
{'John': 34, 'Bob': 29, 'Sarah': 25, 'Mary': 21}
この例では、リストを使用して順序付けされたシーケンスを保存し、タプルを使用して他の不変情報を保存し、セットを使用して重複を削除し、辞書を使用してキーと値のペアを保存します。
どうぞ
この包括的なチュートリアルでは、リスト、タプル、辞書、セットなど、Python の基本的なデータ構造を詳しく説明します。これらの構造は Python プログラミングの構成要素を形成し、データの保存、処理、操作のためのフレームワークを提供します。これらの構造を理解することは、効率的でスケーラブルなコードを作成するために重要です。リストを使用してシーケンスを操作することから、ディクショナリ内のキーと値のペアを使用してデータを整理すること、コレクションが一意であることを確認することまで、これらの基本ツールはデータ処理に優れた柔軟性を提供します。