Python-Dictionary-辞書の作成方法

8683 ワード

辞書
私たちが辞書を作成する方法はたくさんあります.必要に応じて、適切な方法を採用すれば、半分の仕事をすることができます.私が使っているPython 3.0バージョンなので、2.Xのバージョンでは、解析的作成法が追加されました.
1.{}
私はこの方法をカッコで解決する方法と呼んでいます.この方法は辞書の内容が何なのかを知っていて、一度に辞書を作成するのに適しています.後期辞書が頻繁に変化しない場合.
"""
1.           
"""

D={'name':'Bob','age':14,'sex':'male'}
print(D)

出力:
{'name': 'Bob', 'age': 14, 'sex': 'male'}

2.D={}
後期に再び辞書のフィールドを追加する場合、私たちはまず空の辞書の方法で、Dに辞書の穴を占めて、それから後のプログラムの中で、一つ一つその内容を補充します.これは、フィールドを動的に確立する必要がある場合に適しています.
"""
2.              
"""
D={}
D['name']='Bob'
D['age']=14
D['sex']='male'
print(D)

出力:
{'name': 'Bob', 'age': 14, 'sex': 'male'}

3.dict(key1=value1,key1=value2,…)
この方法は使いやすく、しかも簡単で、コード量が小さい~
"""
3. dict(key1=value1,...)    
"""
D=dict(name='Bob',age=14,sex='male')
print(D)

出力:
{'name': 'Bob', 'age': 14, 'sex': 'male'}

4.dict([(key1,value1),(key2,value2),…])
(key,value)pairの形式を使用して、リレーショナルオブジェクトをマッピングします.再プログラムが必要な場合は、キーと値を徐々にシーケンスにします.
この方法はzip関数と組み合わせてよく使用され、プログラムの実行時に動的に取得されたキーと値の異なるリストを統合します.
"""
4.dict([(key1,value1),(key2,value2),...])
"""
D=dict([("name","Bob"),("age",14),("sex",'male')])
print(D)

出力:{‘name’:‘Bob’,‘age’:14,‘sex’:‘male’}
zip関数を組み合わせた使用方法

D=dict(zip(['name','age','sex'],['Bob',14,'male']))
print("zip way:",D)

しゅつりょく
zip way: {'name': 'Bob', 'age': 14, 'sex': 'male'}

5.dict.fromkeys(key[,default])
seqが提供するkey値とvalue値に基づいて新しい辞書を作成します.value値が指定されていない場合、デフォルトはnoneです.
作成した辞書のキーのvalue値が同じであれば、キーリストとすべてのキーペアの初期値を簡単に入力できます.
"""
5.dict.fromkeys(key[,default])
          value      ,          ,           。
"""
key_list=['name','age','sex']
D=dict.fromkeys(key_list,0)
print("keylist:",key_list)
print("Dictionary:",D)

出力:
keylist: ['name', 'age', 'sex']
Dictionary: {'name': 0, 'age': 0, 'sex': 0}

6.dict(iterator)辞書解析式
Python 3.0では、過去の2.Xバージョンは大きく異なります.辞書を作成し、解析式をサポートする方法です.
この方法でdict()コンストラクション関数を呼び出し、反復オブジェクトを入力します.
D={k:v for (k,v) in zip(['name','age','sex'],['Bob',14,'male'])}
print(D)

入力:
{'name': 'Bob', 'age': 14, 'sex': 'male'}

この方式はzip()関数を直接使用するような目的を達成できるが,zip関数よりも煩雑に見える.解析式ではzip関数よりもシーンが多く、柔軟で便利です.
多くの例が襲来する
1.
D={k:k **2 for k in [1,2,3,4]}
print(D)

しゅつりょく
D={k:k **2 for k in [1,2,3,4]}
print(D)

2.
D={c:c * 4 for c in 'SPAM'}
print(D)

しゅつりょく
{'S': 'SSSS', 'P': 'PPPP', 'A': 'AAAA', 'M': 'MMMM'}

3.
'''
            
'''

D={k.lower():k+'!' for k in'HAPPY' }
print(D)

しゅつりょく
{'h': 'H!', 'a': 'A!', 'p': 'P!', 'y': 'Y!'}

4.valueを初期化する目的を達成できる
'''
  fromkeys      
'''
D={k:"   " for k in ['sex','name','age']}
print(D)

しゅつりょく
{'sex': '   ', 'name': '   ', 'age': '   '}

辞書の解析:
辞書解析には、ネストされたループやif文などの形式も含まれます.