【Python】基本データ構造:リスト→タプル→辞書→集合

1. 簡単な紹介

ListPython は、リスト ( )、タプル ( Tuple)、辞書 ( Dictionary)など、さまざまな組み込みデータ構造を提供します。これらのデータ構造は Python プログラミングで広く使用されていますが、それぞれに独自の特性と適用可能なシナリオがあります。

  • リストは、要素をいつでも追加および削除できる、順序付けられたコレクションです。リストは変更可能です。つまり、リストの要素とサイズを変更できます。リストの要素には、数値、文字列、ブール値、さらにはその他のリストなど、任意のタイプを使用できます。リストは、数値の列や名前のセットなど、順序付けられた要素のコレクションを保存するためによく使用されます。

  • タプルはリストとよく似ていますが、タプルは不変です。つまり、タプルの要素やサイズを変更することはできません。これにより、プログラムの実行中にタプルの要素が変更されないことが確実になるため、タプルはリストよりも安全になります。タプルは、日付や地理的位置の緯度と経度など、変更すべきでないデータ セットを保存するためによく使用されます。

  • ディクショナリは、キーと値のペアを格納する順序なしのコレクションです。辞書のキーは一意である必要がありますが、値は任意の型にすることができます。ディクショナリは変更可能です。つまり、ディクショナリのキーと値のペアを追加、削除、および変更できます。辞書は、電話帳や単語数など、キーと値のペアを保存したり検索したりするためによく使用されます。(ハッシュ表)

  • セットとは、順序付けされておらず、繰り返しのない要素のコレクションです。基本的な機能には、関係のテストと重複要素の削除が含まれます。コレクション オブジェクトは、和集合 (union)、交差 (交差)、差分 (差分)、対称差分 (対称差分セット) などの数学演算もサポートします

比較した

  • リストとタプルはどちらも順序付けされたコレクションです。それらの主な違いは、リストが変更可能であるのに対し、タプルは不変更であることです。つまり、いつでも要素を追加、削除、変更できるコレクションが必要な場合はリストを使用し、作成後に変更できないコレクションが必要な場合はタプルを使用する必要があります。

  • 辞書とリストおよびタプルの主な違いは、辞書は順序付けされておらず、個々の要素ではなくキーと値のペアを格納することです。これにより、要素を検索する場合など、キーと値のペアを必要とするデータを操作するときに辞書が便利になり、多くの場合、リストやタプルよりも高速になります。

  • セットとリスト、タプル、辞書の主な違いは、セットが順序付けされておらず繰り返しのない要素のセットであることです。これにより、要素の一意性が必要であり、要素を検索する場合などのコレクション操作が通常リストよりも高速な場合に、コレクションが便利になります。
    ここに画像の説明を挿入

2. Python で詳細をリストする

Python のリスト (List) は、順序付けられた一連の要素を格納できる一般的に使用されるデータ構造です。リストは変更可能です。つまり、リストを作成した後に要素を追加、削除、または変更できます。リスト内の要素は、数値、文字列、ブール値、さらにはその他のリストなど、任意のタイプにすることができます。

2.1 リストの作成

リストの作成は、要素を[]角かっこで囲み、,カンマで区切るだけで簡単に作成できます。例えば:

my_list = [1, 2, 3, 'apple', 'banana', True]

上の例では、my_list3 つの整数、2 つの文字列、およびブール値のリストです。

2.2 リスト要素へのアクセス

インデックスを使用してリスト内の要素にアクセスできます。Python では、インデックスは 0 から始まります。たとえば、上記のリストの最初の要素にアクセスするには、次のようにします。

first_item = my_list[0]  # first_item 现在是 1

負のインデックスを使用して、リストの末尾から要素にアクセスすることもできます。たとえば、my_list[-1]リストの最後の要素を返します。

2.3 リスト要素の変更

リストは変更可能なため、リスト内の要素をインデックスによって変更できます。例えば:

my_list[0] = 'orange'  # my_list 现在是 ['orange', 2, 3, 'apple', 'banana', True]

2.4 リストのスライス

スライスはリストのサブセットを取得する方法です。開始インデックスと終了インデックスを指定することで、新しいリストを取得できます。例えば:

sub_list = my_list[1:4]  # sub_list 现在是 [2, 3, 'apple']

スライスは左→閉じ→右であることに注意してください。つまり、返される新しいリストには開始インデックスの要素が含まれますが、終了インデックスは含まれません。

2.5 リストメソッド

Python のリストにはappend()insert()remove()pop()、 などの多くのメソッドが提供されていますsort()これらのメソッドを使用すると、リストをより簡単に操作できるようになります。

たとえば、append()メソッドはリストの最後に新しい要素を追加できます。

my_list.append('grape')  # my_list 现在是 ['orange', 2, 3, 'apple', 'banana', True, 'grape']

remove()リスト内の特定の要素を削除するメソッド:

my_list.remove('banana')  # my_list 现在是 ['orange', 2, 3, 'apple', True, 'grape']

2.6 リスト内包表記

リスト内包表記は、Python でリストを作成する簡潔な方法です。1 行のコードで新しいリストを生成できます。たとえば、次のコードは 1 から 10 までの正方形のリストを生成します。

squares = [x**2 for x in range(1, 11)]  # squares 是 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3. Pythonのタプルの詳しい説明

Python のタプルは、一連の順序付けされた要素を格納できる一般的に使用されるデータ構造です。タプルはリストとよく似ていますが、重要な違いが 1 つあります。タプルは不変です。つまり、タプルの作成後に要素を追加、削除、または変更することはできません。タプル内の要素は、数値、文字列、ブール値、さらには他のタプルやリストなど、任意のタイプにすることができます。

3.1 タプルの作成

タプルの作成は、要素を()括弧で囲み、,カンマで区切るだけで簡単です。例えば:

my_tuple = (1, 2, 3, 'apple', 'banana', True)

上の例では、my_tuple3 つの整数、2 つの文字列、およびブール値を含むタプルです。

要素が 1 つだけ含まれるタプルを作成する場合は、要素の後にカンマを追加する必要があることに注意してください (例: ) my_tuple = (1,)

3.2 タプル要素へのアクセス

インデックスを使用してタプル内の要素にアクセスできます。Python では、インデックスは 0 から始まります。たとえば、上記のタプルの最初の要素にアクセスするには、次のようにします。

first_item = my_tuple[0]  # first_item 现在是 1

負のインデックスを使用して、タプルの末尾から要素にアクセスすることもできます。たとえば、my_tuple[-1]タプル内の最後の要素を返します。

3.3 タプルは不変です

タプルを作成した後は、その要素やサイズを変更することはできません。これは、リストのようなタプルの要素を追加、削除、または変更できないことを意味します。これを実行しようとすると、Python でエラーが発生します。

my_tuple[0] = 'orange'  # 这将引发错误

タプル自体は不変ですが、タプル内の要素が変更可能な場合 (リストなど)、それらの要素を変更できます。

3.4 タプルのスライス

スライスはタプルのサブセットを取得する方法です。開始インデックスと終了インデックスを指定することで、新しいタプルを取得できます。例えば:

sub_tuple = my_tuple[1:4]  # sub_tuple 现在是 (2, 3, 'apple')

スライスは左-閉じ-右であることに注意してください。つまり、返される新しいタプルには開始インデックスの要素が含まれますが、終了インデックスは含まれません。

3.5 タプルメソッド

タプルは不変であるため、リストよりもメソッドが少なくなります。Python のタプルでは、count()​​ と の2 つのメソッドのみが提供されますindex()count()メソッドはタプル内の特定の要素の数をカウントするために使用され、index()メソッドはタプル内の特定の要素が最初に出現するインデックスを見つけるために使用されます。

my_tuple = (1, 2, 3, 2, 2, 4)
count = my_tuple.count(2)  # count 现在是 3
index = my_tuple.index(2)  # index 现在是 1

4. Pythonの辞書の詳しい解説

Python の辞書は、キーと値のペアを格納する非常に重要なデータ構造です。ディクショナリは変更可能です。つまり、ディクショナリの作成後にキーと値のペアを追加、削除、または変更できます。辞書のキーと値は、数値、文字列、ブール値、さらには他の辞書やリストなど、任意のタイプにすることができます。

4.1 辞書を作成する

{}辞書の作成は、キーと値のペアを中括弧で囲み、,カンマで区切るだけで簡単に作成できます。各キーと値のペアのキーと値は:コロンで区切られます。例えば:

my_dict = {
    
    'name': 'Alice', 'age': 20, 'is_student': True}

上の例では、my_dict3 つのキーと値のペアを含む辞書です。

4.2 辞書要素へのアクセス

キーを使用して辞書内の値にアクセスできます。たとえば、上記の辞書の「name」キーに対応する値にアクセスするには、次のようにします。

name = my_dict['name']  # name 现在是 'Alice'

辞書に存在しないキーにアクセスしようとすると、Python はスローしますKeyErrorこの種のエラーを回避するには、メソッドを使用してget()ディクショナリ内の値にアクセスします。キーが存在しない場合、get()メソッドはNone指定したデフォルト値を返します。

city = my_dict.get('city', 'New York')  # city 现在是 'New York'

4.3 辞書要素の変更

辞書内の値をキーで変更できます。例えば:

my_dict['age'] = 21  # my_dict 现在是 {'name': 'Alice', 'age': 21, 'is_student': True}

update()メソッドを使用して、ディクショナリ内の複数のキーと値のペアを一度に更新することもできます。

my_dict.update({
    
    'age': 22, 'city': 'London'})  # my_dict 现在是 {'name': 'Alice', 'age': 22, 'is_student': True, 'city': 'London'}

4.4 辞書メソッド

Python の辞書にはkeys()、 、values()items()pop()などの多くのメソッドが提供されていますclear()これらのメソッドを使用すると、辞書をより簡単に操作できるようになります。

たとえば、keys()メソッドは辞書内のすべてのキーを返し、values()メソッドは辞書内のすべての値を返し、items()メソッドは辞書内のすべてのキーと値のペアを返すことができます。

keys = my_dict.keys()  # keys 现在是 dict_keys(['name', 'age', 'is_student', 'city'])
values = my_dict.values()  # values 现在是 dict_values(['Alice', 22, True, 'London'])
items = my_dict.items()  # items 现在是 dict_items([('name', 'Alice'), ('age', 22), ('is_student', True), ('city', 'London')])

pop()このメソッドは、辞書内の特定のキーの値を削除して返したり、clear()辞書を空にしたりできます。

age = my_dict.pop('age')  # age 现在是 22,my_dict 现在是 {'name': 'Alice', 'is_student': True, 'city': 'London'}
my_dict.clear()  # my_dict 现在是 {}

5. Pythonでのコレクションの詳しい説明

Python のセット (Set) は、データの一意性とセット操作を処理する効率的な方法を提供する独自のデータ構造です。コレクションは、順序付けされておらず、繰り返しのない要素のセットです。つまり、コレクション内の要素は一意であり、挿入順序は保証されません。

5.1 コレクションを作成する

コレクションの作成は、要素{}を中かっこで囲み、,カンマで区切るだけで簡単に作成できます。例えば:

my_set = {
    
    1, 2, 3, 'apple', 'banana', True}

上の例では、my_set3 つの整数、2 つの文字列、およびブール値を含むセットです。

set()空のコレクションを作成する場合は、空の中括弧ではなく関数を使用する必要があることに注意してください。これは{}、Python では空の中括弧は空の辞書を表すためです。

empty_set = set()  # 创建一个空集合

5.2 コレクションの基本操作

コレクションは、要素の追加、要素の削除、要素が存在するかどうかの確認など、一連の基本操作を提供します。

my_set = {
    
    1, 2, 3}

my_set.add(4)  # my_set 现在是 {1, 2, 3, 4}
my_set.remove(1)  # my_set 现在是 {2, 3, 4}
print(2 in my_set)  # 输出 True

5.3 集合に対する数学的演算

セットは、和集合、交差、差分、対称差分などのいくつかの一般的な数学演算をサポートします。

set1 = {
    
    1, 2, 3, 4}
set2 = {
    
    3, 4, 5, 6}

print(set1.union(set2))  # 输出 {1, 2, 3, 4, 5, 6}
print(set1.intersection(set2))  # 输出 {3, 4}
print(set1.difference(set2))  # 输出 {1, 2}
print(set1.symmetric_difference(set2))  # 输出 {1, 2, 5, 6}

5.4 集合の応用

セット内の要素は一意であるため、セットはリスト内の重複した要素を削除するためによく使用されます。

my_list = [1, 2, 2, 3, 3, 3]
my_set = set(my_list)  # my_set 现在是 {1, 2, 3}

セット内の要素の検索は、通常、リスト内の要素の検索よりも高速であるため、セットはメンバーシップ テストでもよく使用されます。

my_set = {
    
    1, 2, 3, 4, 5}
print(3 in my_set)  # 输出 True


最後永遠に愛してと書いてください

おすすめ

転載: blog.csdn.net/weixin_43764974/article/details/132134270