Python基本データ型(秩序辞書)

6321 ワード

1.一般辞書と秩序辞書の違い
区別:秩序辞書は通常の辞書と似ていますが、要素が挿入された順序を記録することができますが、一般的な辞書は任意の順序で反復します.簡単に言えば,forサイクルで取得したkvが一定の順序で取得されるかどうかである.
2.一般辞書
#     
dic01 = {'name':'Tom','age':12,'gender':'male'}
print('dic01:',dic01)
'''
      ,    k:v      
     :{'name': 'Tom', 'gender': 'male', 'age': 12}
     :{'gender': 'male', 'name': 'Tom', 'age': 12}
     :{'name': 'Tom', 'gender': 'male', 'age': 12}
'''

for k,v in dic01.items():
    print(k,v)  #       
'''
gender male
name Tom
age 12
'''

以上のように,取得したkvは,毎回異なる配列順序である.
3.秩序辞書
3.1整列挿入
# 3.1     
dic03 = OrderedDict()
dic03['a'] = 'A'
dic03['b'] = 'B'
dic03['c'] = 'C'
print('dic03:',dic03)   # dic03: OrderedDict([('a', 'A'), ('b', 'B'), ('c', 'C')])

for k,v in dic03.items():
    print(k,v)
'''
a A
b B
c C
'''

以上のように、forループ反復取り出しにより、その挿入順に、順次取り出した
3.2事前定義
注意:以前はいくつかのブログを見て、秩序ある辞書は事前定義をサポートしていないと言っていましたが、実測すると、事前定義できることがわかりました.効果は以下の通りです.
# 3.2        
dic02 = OrderedDict(
    [
        ('name','Jack'),
        ('age',14),
        ('gender','male')
    ]
)

print('dic02:',dic02)    # OrderedDict([('name', 'Jack'), ('age', 14), ('gender', 'male')])
print(dic02['gender'])  # male

for k,v in dic02.items():
    print(k,v)
'''
name Jack
age 14
gender male
'''

以上のようにforループによって取り出されたkvも,その定義された順序で取り出されている.