工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python 辞書の基礎:キー、値、アクセス方法を完全解説

各キーはコロン(:)で値から区切られ、アイテムはカンマで区切られ、全体は波括弧で囲まれます。アイテムのない空の辞書は、ただ 2 つの波括弧で書きます:{}。

キーは辞書内で一意でなければなりませんが、値は一意である必要はありません。辞書の値は任意の型にできますが、キーは文字列、数値、タプルなどの不変(イミュータブル)なデータ型でなければなりません。

辞書内の値へのアクセス

辞書の要素にアクセスするには、慣れ親しんだ角括弧とキーを使用して値を取得します。シンプルな例:

ライブ デモ
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

上記のコードを実行すると、次の結果が得られます。

dict['Name']: Zara
dict['Age']: 7

辞書に含まれないキーでデータアイテムにアクセスしようとすると、次のようなエラーが発生します。

ライブ デモ
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

上記のコードを実行すると、次の結果が得られます。

dict['Alice']: 
Traceback (most recent call last):
  File "test.py", line 4, in 
    print "dict['Alice']: ", dict['Alice']
KeyError: 'Alice'

辞書の更新

新しいエントリまたはキー・値ペアを追加したり、既存のエントリを変更したり、既存のエントリを削除したりすることで、辞書を更新できます。シンプルな例:

ライブ デモ
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8           # 既存エントリの更新
dict['School'] = "DPS School"  # 新しいエントリの追加
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

上記のコードを実行すると、次の結果が得られます。

dict['Age']: 8
dict['School']: DPS School

辞書要素の削除

個々の辞書要素を削除したり、辞書の全内容をクリアしたりできます。また、1 回の操作で辞書全体を削除することもできます。

辞書全体を明示的に削除するには、del 文を使用します。シンプルな例:

ライブ デモ
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']   # キー 'Name' のエントリを削除
dict.clear()       # 辞書のすべてのエントリを削除
del dict           # 辞書全体を削除
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

次の結果が得られます。del dict の後では辞書が存在しなくなるため、例外が発生します。

dict['Age']: 
Traceback (most recent call last):
  File "test.py", line 8, in 
    print "dict['Age']: ", dict['Age']
TypeError: 'type' object is unsubscriptable

注 — del() メソッドについては後のセクションで説明します。

辞書キーのプロパティ

辞書の値には制限がありません。標準オブジェクトまたはユーザー定義オブジェクトのいずれでも、任意の Python オブジェクトを値として使用できます。しかし、キーについては同じことは言えません。

辞書キーについて覚えておくべき 2 つの重要なポイント:

(a) キーあたり 1 エントリ以上は許可されません。つまり、重複キーは許可されません。代入時に重複キーが検出された場合、最後の代入が優先されます。例:

ライブ デモ
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

上記のコードを実行すると、次の結果が得られます。

dict['Name']: Manni

(b) キーは不変でなければなりません。つまり、文字列、数値、タプルを辞書キーとして使用できますが、['key'] のようなリストは使用できません。シンプルな例:

ライブ デモ
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

上記のコードを実行すると、次の結果が得られます。

Traceback (most recent call last):
  File "test.py", line 3, in 
    dict = {['Name']: 'Zara', 'Age': 7}
TypeError: unhashable type: 'list'

組み込み辞書関数とメソッド

Python には以下の辞書関数が含まれています。

番号関数と説明
1cmp(dict1, dict2)

両方の辞書の要素を比較します。

2len(dict)

辞書の総長を返します。これは辞書内のアイテム数と等しくなります。

3str(dict)

辞書の印刷可能な文字列表現を生成します。

4type(variable)

渡された変数の型を返します。渡された変数が辞書なら、辞書型を返します。

Python には以下の辞書メソッドが含まれています。

番号メソッドと説明
1dict.clear()

辞書 dict のすべての要素を削除

2dict.copy()

辞書 dict の浅いコピーを返す

3dict.fromkeys()

シーケンスからキーを取得し、値を value に設定した新しい辞書を作成

4dict.get(key, default=None)

キー key に対する値を返す。キーが辞書にない場合は default を返す

5dict.has_key(key)

キーが辞書 dict にあれば true、なければ false を返す

6dict.items()

辞書 dict の (キー, 値) タプルペアのリストを返す

7dict.keys()

辞書 dict のキーのリストを返す

8dict.setdefault(key, default=None)

get() に似ているが、key がまだ辞書にない場合は dict[key]=default を設定

9dict.update(dict2)

辞書 dict2 のキー・値ペアを dict に追加

10dict.values()

辞書 dict の値のリストを返す

Python

  1. Python データ型マスター: 実践ガイド
  2. Python 演算子完全マスター: 包括的ガイド
  3. Python pass文完全マスター: 実践ガイド
  4. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  5. Python辞書完全ガイド:作成、操作、高度なテクニック
  6. Pythonイテレータ完全ガイド:仕組みと自作方法
  7. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  8. Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
  9. Python 概要:高水準、読みやすい、インタラクティブ、オブジェクト指向
  10. Python 数値型完全ガイド:不変な数値データ型の理解と活用
  11. Python 文字列完全マスター:作成、アクセス、操作のすべて