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

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

  1. Python データ型
  2. Python 演算子
  3. Python pass ステートメント
  4. Python 関数の引数
  5. Python イテレータ
  6. Python クロージャー
  7. Python 日時
  8. Python-概要
  9. Python-数字
  10. Python-文字列
  11. Python-タプル