RFC822.SIZE
これは非常にばかげた質問かもしれませんが、次の形式の二重辞書から値を抽出する方法を知りたいです。
{1: {'RFC822.SIZE': 2515, 'SEQ': 1},
2: {'RFC822.SIZE': 2942, 'SEQ': 2}, ....
RFC822.SIZE
これは非常にばかげた質問かもしれませんが、次の形式の二重辞書から値を抽出する方法を知りたいです。
{1: {'RFC822.SIZE': 2515, 'SEQ': 1},
2: {'RFC822.SIZE': 2942, 'SEQ': 2}, ....
your_dict = { 1:{'foo':123}}
your_dict[1]['foo']
In [2]: {1: {'RFC822.SIZE': 2515, 'SEQ': 1}, 2: {'RFC822.SIZE': 2942, 'SEQ': 2}}[1]['RFC822.SIZE']
Out[2]: 2515
は{...}[1]
サブディクショナリ{'RFC822.SIZE': 2515, 'SEQ': 1}
を返し、 を使用してこれから値を取得できます['RFC822.SIZE']
。
「二重辞書」とは、ネストされた辞書を意味していると思いますよね?
さて、キー(たとえば、1)を介して外部辞書の値にアクセスすると、対応する内部辞書が返され、その値にアクセスできます...まあ、辞書のように。
次に例を示します。
data = {1: {'RFC822.SIZE': 2515, 'SEQ': 1}, 2: {'RFC822.SIZE': 2942, 'SEQ': 2}}
# get the inner dictionary with key 1
key_1 = data[1] # {'RFC822.SIZE': 2515, 'SEQ': 1}
# get RFC822.SIZE
size = key_1['RFC822.SIZE']
これを知っていれば、値に直接アクセスすることですべてのコードを要約できます。
size = data[1]['RFC822.SIZE']
これはいくつかの基本的な python です (python でコーディングするときは常に dict を使用します) ので、(python で本格的なコーディングを行う予定がある場合) チュートリアルを読むことをお勧めします。少なくともpython のドキュメント ページで見つけることができる入門的なものです。
ネストされた辞書があるため、ネストされたルックアップを使用します。
for item in sizeList:
print item, sizeList[item]['RFC822.SIZE']
これとコメントの使用法とのわずかな違いに注意してください。あなたのコメントは indexitem
を試みますが、これは indexsizeList[item]
です。