第 6 章: Python の基本データ構造 - 辞書

辞書は、Python の最も基本的なデータ構造です。

ディクショナリは別の変更可能なコンテナ モデルであり、あらゆるタイプのオブジェクトを格納できます。

ディクショナリの各キーと値のkey=>valueペアはコロン: で区切られ、各ペアはコンマ ( , ) で区切られ、ディクショナリ全体が中括弧{}で囲まれます。

辞書は Python キーワードおよび組み込み関数として使用され、変数名に dict という名前を付けることはお勧めできませ

キーは一意である必要がありますが、値は一意ではありません。

値は任意のデータ型を取ることができますが、キーは文字列や数値など、不変である必要があります。

1. 辞書の概要

  • 辞書とは何ですか

    • 辞書は Python の最も基本的なデータ構造の1 つであり、リストと同様に変更可能なシーケンスです。
    • データはキーと値のペアの形式で保存され、辞書は順序付けられていないシーケンスになります。
  • 辞書の模式図

画像-20220819185856654

  • 辞書の実装原理
    • 辞書の実装原理は辞書を引く場合と似ています。辞書を引くとは、まず部首またはピンインに基づいて対応するページ番号を調べます。Python の辞書は、次のように値の位置調べます

第二に、辞書の作成

  • 最も一般的な方法: 中括弧を使用する

    • コードデモ
    """1、使用{}创建字典"""
    scores = {
          
          "张三": 100, "李四": 98, "王五": 88}
    print(scores)
    print(type(scores))
    
  • 組み込み関数 dict() を使用する

    • コードデモ
    """2、使用内置函数dict()创建"""
    student = dict(name="tom", age=19)
    print(student)
    
  • 空の辞書を作成する

    • コードデモ
    """创建一个空字典"""
    dict3 = {
          
          }
    print(dict3)
    

3. 辞書の共通操作

3.1 辞書内の要素の取得

  • 要素を取得するメソッド

    辞書要素を取得するメソッド 違い
    [] スコア[「張三」] []指定されたキーが辞書に存在しない場合KeyError 例外がスローされます。
    get() メソッド スコア.get("張三") get() メソッドは値を受け取ります。指定されたキーが辞書に存在しない場合は、 KeyError をスローせずにNone を返します。指定されたキーが存在しない場合に返される
    ように、パラメータを通じてデフォルトの Value を設定できます。
    • コードデモ
    """获取字典中的元素"""
    scores = {
          
          "张三": 100, "李四": 98, "王五": 88}
    """第一种方式,使用[]"""
    print(scores["张三"])
    
    """第二种方式,使用get()方法"""
    print(scores.get("张三"))
    
    """差异性"""
    # print(scores["阿萨德"])
    print(scores.get("阿萨德"))
    print(scores.get("阿达", 99))
    

3.2 辞書の要素の判定

  • 辞書のキーの判断

    メソッドステートメント 説明する
    指定されたキーが辞書に存在する場合はTrue を返します
    ありませんで 指定されたキーが辞書に存在しない場合はTrue を返します。
    • コードデモ
    """key的判断"""
    scores = {
          
          "张三": 100, "李四": 98, "王五": 88}
    print("张三" in scores)
    print("张三" not in scores)
    
    print("阿达" in scores)
    print("阿达" not in scores)
    

3.3 辞書の要素の削除、追加、変更

  • コードデモ
"""删除指定的key——value"""
del scores["张三"]
print(scores)
# 清空字典所有元素
scores.clear()
print(scores)

"""字典元素的新增操作"""
scores["柯蓝"] = 100
print(scores)

"""字典元素的修改操作"""
scores["柯蓝"] = 10
print(scores)

3.4 辞書の表示を取得する

  • 辞書ビューを取得する 3 つの方法
方法 説明する
鍵() 辞書内のすべてのキーを取得する
値() 辞書内のすべての値を取得します
アイテム() 辞書内のすべてのキーを取得します: vaule キーと値のペア
  • コードデモ
scores = {
    
    "张三": 100, "李四": 98, "王五": 88}
"""获取所有的key"""
keys = scores.keys()
print(keys)
print(type(keys))
# 将所有的key组成的视图转换成列表
print(list(keys))

print("\n")
"""获取所有的value"""
values = scores.values()
print(values)
print(type(values))
print(list(values))

print("\n")
"""获取所有的key-value"""
items = scores.items()
print(items)
print(type(items))
print(list(items))  # 转换之后的列表元素有元组组成

3.5 辞書要素の走査

  • コードデモ
scores = {"张三": 100, "李四": 98, "王五": 88}
"""字典元素的遍历"""
for item in scores:
    print(item)
    print(item, scores[item], scores.get(item))

第四に、辞書の特徴

  • ディクショナリ内のすべての要素はキーと値のキーと値のペアです。キーの繰り返しは許可されませんが、値の繰り返しは許可されます。
  • 辞書内の要素は順序付けされていません
  • 辞書内のキーは不変オブジェクトである必要があります
  • 辞書は必要に応じて動的に拡張することもできます
  • 辞書は大量のメモリを浪費します。時間に対して空間を使用するデータ構造です。

五、辞書の世代

辞書生成式、以下「辞書生成式」

  • 組み込み関数zip()を呼び出します。

    • 反復可能なオブジェクトをパラメータとして受け取り、オブジェクト内の要素をタプルにパックし、これらのタプルのリストを返すために使用されます。
  • コードデモ

"""已知两个列表,生成一个字典
items = ['Fruits', 'Books', 'Others']
prices = [96, 78, 85,100,200]
"""
items = ['Fruits', 'Books', 'Others']
prices = [96, 78, 85,100,45566]

d = {
    
    item.upper(): price for item, price in zip(items, prices)}
print(d)
# 如果用于生成的两个列表中的参数个数不相等,取较小的一个

おすすめ

転載: blog.csdn.net/polaris3012/article/details/130504945