Python プログラミング入門 (013) - 辞書操作 (2): 一般的な辞書操作のまとめ
目次
1. 辞書内の要素の値を取得します。
1. dictname[key] を使用します
形式は次のとおりです。
dictname[key]
注: キー値が辞書に存在しない場合、プログラムはエラーを報告します。
例えば:
dict1 = {
11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
print(dict1[11])
print(type(dict1[11]))
print(dict1[12]) # key不存在
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
Traceback (most recent call last):
File "C:\Python\Python38\First.py", line 4, in <module>
print(dict1[12]) # key不存在
KeyError: 12
キーが存在するかどうか不明な場合は、次の操作を行うことができます。
dict1 = {
11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
if 11 in dict1:
print(dict1[11])
print(type(dict1[11]))
if 12 in dict1:
print(dict1[12])
print(type(dict1[12]))
else:
print("key值不存在") # key不存在
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
key值不存在
2. get() メソッドを使用する
get() メソッドの構文形式は次のとおりです。
dictname.get(key)
注: キー値が辞書に存在しない場合は、None が返されます。
次のように:
dict1 = {
11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
print(dict1.get(11))
print(type(dict1.get(11)))
print(dict1.get(12)) # key值不存在
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
None
2. 要素の追加または値の変更
1. dictname[key] を使用します
形式は次のとおりです。
dictname[key] = vlaue
注: ディクショナリ内のキーは一意であるため、キー値がディクショナリに存在しない場合は、キーと値のペアを追加します。キー値がすでにディクショナリに存在する場合は、値の値を変更します。
例えば:
dict1 = {
11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
dict1[66] = "MySQL"
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
11: 'Java', 22: 'Python', 33: 'C++', 44: 'C#', 55: 'Rust', 66: 'MySQL'}
2. update() メソッドを使用する
update() メソッドの構文形式は次のとおりです。
dictname.update(key = value)
説明: キーがすでに存在する場合は、値を更新します。キーが存在しない場合は、新しいキーと値のペアを追加します。
例えば:
dict1 = {
"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
dict1.update(Price = 52.5) # key值存在,更新对应的value值
print(dict1)
dict1.update(Remark = "教材") # key值不存在,添加一个新的键值对
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 52.5}
{
'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 52.5, 'Remark': '教材'}
3. 要素を削除する
1. Pop()メソッドを使用して要素を削除します
Pop() メソッドを使用して、ディクショナリ内の指定されたキーに対応するキーと値のペアを削除し、削除された値を返します。Pop() メソッドの構文形式は次のとおりです。
dictname.pop(key[,default])
パラメータの説明:
(1) key:削除するキーを指定します。
(2) デフォルト: 削除するキーが存在しない場合はデフォルト値を返します。
(3) 辞書内に削除対象のキーが存在せず、デフォルトパラメータが指定されていない場合は、keyerror 例外がスローされます。
例えば:
dict1= {
11:"Java",22:"Python",33:"C++",44:"Go",55:"Rust"}
item1 = dict1.pop(11,"要删除的值不存在")
print("pop()函数的返回值为:",item1)
print(type(item1))
print(dict1)
item1 = dict1.pop(12,"要删除的值不存在")
print("pop()函数的返回值为:",item1)
print(type(item1))
print(dict1)
item1 = dict1.pop(13) # 出错
print("返回值为:",item1)
print(type(item1))
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
pop()函数的返回值为: Java
<class 'str'>
{
22: 'Python', 33: 'C++', 44: 'Go', 55: 'Rust'}
pop()函数的返回值为: 要删除的值不存在
<class 'str'>
{
22: 'Python', 33: 'C++', 44: 'Go', 55: 'Rust'}
Traceback (most recent call last):
File "C:\Python\Python38\First.py", line 10, in <module>
item1 = dict1.pop(13) # 出错
KeyError: 13
2. Popitem()メソッドを使用して要素を削除します
Popitem() メソッドを使用して、ディクショナリ内の最後のキーと値のペアを削除し、このキーと値のペアをタプル (キー、値) として返します。Popitem() メソッドの構文形式は次のとおりです。
dictname.popitem()
例えば:
(): 戻り値はタプル (キー、値) デフォルトでは、asm に置かれた投票ファイルは削除され、後ろから前に変更されます。
dict1 = {
11:"Java",22:"Python",33:"C++",44:"C#",55:"Rust"}
item1 = dict1.popitem()
print("返回值:",item1)
print("返回值类型:",type(item1))
print(dict1)
item1 = dict1.popitem()
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
返回值: (55, 'Rust')
返回值类型: <class 'tuple'>
{
11: 'Java', 22: 'Python', 33: 'C++', 44: 'C#'}
{
11: 'Java', 22: 'Python', 33: 'C++'}
3. del を使用して、辞書または辞書内の要素を削除します。
(1) 辞書の削除
形式は次のとおりです。
del dictname
或
del(dictname)
例えば:
dict1 = {
"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
del dict1
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):
File "C:\Python\Python38\First.py", line 3, in <module>
print(dict1)
NameError: name 'dict1' is not defined
(2) 辞書内の要素を削除する
del dict1[key]
或
del(dict1[key])
例えば:
dict1 = {
"BookName":"Java从入门到精通","Author":"郑云","Price":59.8}
del dict1["Price"]
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
'BookName': 'Java从入门到精通', 'Author': '郑云'}
4. 辞書を結合する
update() メソッドを使用して、ある辞書の内容を別の辞書にマージします。形式は次のとおりです。
dict1.update(dict2) # 将dict2合并到dict1
例えば:
dict1 = {
"BookName":"Java从入门到精通","Author":"郑云"}
dict2 = {
"Price":59.8,"Remark":"教材"}
dict1.update(dict2)
print(dict1)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
'BookName': 'Java从入门到精通', 'Author': '郑云', 'Price': 59.8, 'Remark': '教材'}
5. 辞書内の要素の数を返します。
len() 関数を使用して、辞書の要素形式を返します。形式は次のとおりです。
len(dictname)
例えば:
dict1 = {
"BookName":"Java从入门到精通","Author":"郑云","Price":59.8,"Remark":"教材"}
print(len(dict1))
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
4