Python 辞書
パイソン辞書
このチュートリアルでは、Python 辞書に関するすべてを学びます。要素の作成方法、要素へのアクセス、要素の追加、要素の削除、およびさまざまな組み込みメソッド。
ビデオ:キーと値のペアを保存する Python 辞書
Python ディクショナリは、順序付けされていないアイテムのコレクションです。辞書の各項目には key/value があります ペア。
辞書は、キーがわかっている場合に値を取得するように最適化されています。
Python 辞書の作成
辞書の作成は、項目を中括弧 {} 内に配置するのと同じくらい簡単です。 カンマで区切ります。
アイテムに key があります および対応する value ペア (key:value ).
値は任意のデータ型にすることができ、繰り返すことができますが、キーは不変型 (文字列、数値、または不変要素を含むタプル) である必要があり、一意である必要があります。
# empty dictionary
my_dict = {}
# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}
# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}
# using dict()
my_dict = dict({1:'apple', 2:'ball'})
# from sequence having each item as a pair
my_dict = dict([(1,'apple'), (2,'ball')])
上記からわかるように、組み込みの dict() を使用して辞書を作成することもできます 関数。
辞書からの要素へのアクセス
インデックスは値にアクセスするために他のデータ型で使用されますが、ディクショナリは keys を使用します .キーは角かっこ [] 内のいずれかで使用できます または get() メソッド。
角括弧 [] を使用する場合 、 KeyError ディクショナリでキーが見つからない場合に発生します。一方、get() は メソッドは None を返します キーが見つからない場合
# get vs [] for retrieving elements
my_dict = {'name': 'Jack', 'age': 26}
# Output: Jack
print(my_dict['name'])
# Output: 26
print(my_dict.get('age'))
# Trying to access keys which doesn't exist throws error
# Output None
print(my_dict.get('address'))
# KeyError
print(my_dict['address']) 出力
Jack
26
None
Traceback (most recent call last):
File "<string>", line 15, in <module>
print(my_dict['address'])
KeyError: 'address' 辞書要素の変更と追加
辞書は変更可能です。代入演算子を使用して、新しいアイテムを追加したり、既存のアイテムの値を変更したりできます。
キーがすでに存在する場合、既存の値が更新されます。キーが存在しない場合は、新しい (キー:値 ) ペアが辞書に追加されます。
# Changing and adding Dictionary Elements
my_dict = {'name': 'Jack', 'age': 26}
# update value
my_dict['age'] = 27
#Output: {'age': 27, 'name': 'Jack'}
print(my_dict)
# add item
my_dict['address'] = 'Downtown'
# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict) 出力
{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'} 辞書からの要素の削除
pop() を使用して、辞書内の特定の項目を削除できます。 方法。このメソッドは、指定された key を持つアイテムを削除します value を返します .
popitem() メソッドを使用して、任意の (key, value) を削除して返すことができます ディクショナリのアイテム ペア。 clear() を使用して、すべてのアイテムを一度に削除できます メソッド。
del も使用できます 個々の項目または辞書全体を削除するキーワード
# Removing elements from a dictionary
# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# remove a particular item, returns its value
# Output: 16
print(squares.pop(4))
# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)
# remove an arbitrary item, return (key,value)
# Output: (5, 25)
print(squares.popitem())
# Output: {1: 1, 2: 4, 3: 9}
print(squares)
# remove all items
squares.clear()
# Output: {}
print(squares)
# delete the dictionary itself
del squares
# Throws Error
print(squares)
出力
16
{1: 1, 2: 4, 3: 9, 5: 25}
(5, 25)
{1: 1, 2: 4, 3: 9}
{}
Traceback (most recent call last):
File "<string>", line 30, in <module>
print(squares)
NameError: name 'squares' is not defined Python 辞書メソッド
ディクショナリで使用できるメソッドを以下に示します。それらのいくつかは、上記の例で既に使用されています。
| メソッド | 説明 |
|---|---|
| clear() | 辞書からすべての項目を削除します。 |
| copy() | 辞書の浅いコピーを返します。 |
| fromkeys(seq[, v]) | seq のキーを持つ新しい辞書を返します v に等しい値 (デフォルトは None ). |
| get(key[,d]) | キーの値を返します . キー 存在しません。d を返します (デフォルトは None ). |
| items() | 辞書の項目の新しいオブジェクトを (キー、値) 形式で返します。 |
| keys() | 辞書のキーの新しいオブジェクトを返します。 |
| pop(key[,d]) | キーでアイテムを削除します その値または d を返します キーの場合 見つかりません。 dの場合 は提供されず、キー が見つからない場合、KeyError が発生します . |
| popitem() | 任意のアイテム (キー、値) を削除して返します )。 KeyErrorを上げる 辞書が空の場合 |
| setdefault(key[,d]) | キーの場合、対応する値を返します は辞書にあります。そうでない場合は、キー を挿入します d の値で d を返します (デフォルトは None ). |
| update([その他]) | other からのキーと値のペアで辞書を更新します 、既存のキーを上書きします。 |
| values() | 辞書の値の新しいオブジェクトを返します |
これらの方法の使用例をいくつか示します。
# Dictionary Methods
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)
# Output: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)
for item in marks.items():
print(item)
# Output: ['English', 'Math', 'Science']
print(list(sorted(marks.keys()))) 出力
{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)
['English', 'Math', 'Science'] Python 辞書内包表記
辞書内包表記は、Python で iterable から新しい辞書を作成するエレガントで簡潔な方法です。
辞書内包表記は、式のペア (キー:値) で構成されます ) の後に for が続きます 中括弧 {} 内のステートメント .
以下は、各項目が数字とその二乗のペアである辞書を作成する例です。
# Dictionary Comprehension
squares = {x: x*x for x in range(6)}
print(squares) 出力
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} このコードは
と同等です
squares = {}
for x in range(6):
squares[x] = x*x
print(squares) 出力
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} 辞書内包表記には、必要に応じて for または if ステートメントをさらに含めることができます。
オプションの if ステートメントは項目を除外して新しい辞書を作成できます。
奇数項目のみで辞書を作成する例をいくつか示します。
# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares) 出力
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81} 辞書内包表記の詳細については、Python Dictionary Comprehension を参照してください。
その他の辞書操作
辞書メンバーシップ テスト
key かどうかをテストできます 辞書にあるか、キーワード in を使用していません .メンバーシップ テストは keys のみであることに注意してください。 values 用ではありません .
# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Output: True
print(1 in squares)
# Output: True
print(2 not in squares)
# membership tests for key only not value
# Output: False
print(49 in squares) 出力
True True False
辞書の繰り返し
for を使用して、辞書内の各キーを反復処理できます ループ。
# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
print(squares[i]) 出力
1 9 25 49 81
辞書組み込み関数
all() などの組み込み関数 、 any() 、 len() 、 cmp() 、 sorted() などは、さまざまなタスクを実行するために辞書で一般的に使用されます。
| 関数 | 説明 |
|---|---|
| all() | True を返す 辞書のすべてのキーが True の場合 (または辞書が空の場合)。 |
| any() | True を返す 辞書のいずれかのキーが true の場合。辞書が空の場合、False を返します . |
| len() | 辞書の長さ (項目数) を返します。 |
| cmp() | 2 つの辞書の項目を比較します。 (Python 3 では利用できません) |
| sorted() | 辞書内のキーの新しいソート済みリストを返します。 |
組み込み関数を使用して辞書を操作する例をいくつか示します。
# Dictionary Built-in Functions
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Output: False
print(all(squares))
# Output: True
print(any(squares))
# Output: 6
print(len(squares))
# Output: [0, 1, 3, 5, 7, 9]
print(sorted(squares)) 出力
False True 6 [0, 1, 3, 5, 7, 9]
Python