我想能夠從文件中訪問數據,將它們組織成一個我認爲應該是字典列表字典的結構,從我的理解,可能如下所示:Python字典的字典列表
ID_FILE = {
'KEY_1': [
{
'R_1': [
{
'A_1': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_2': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_3': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
]
}
],
'R_2': [
{
'A_1': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_2': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_3': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
]
}
],
'R_3': [
{
'A_1': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_2': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
],
'A_3': [
{
'P_1': ['a', 'b', 'c', 'd']
},
{
'P_2': ['a', 'b', 'c', 'd']
},
{
'P_3': ['a', 'b', 'c', 'd']
}
]
}
]
}
],
'KEY_2': [...as 'KEY_1'...],
'KEY_3': [...as 'KEY_1'...]
}
,我不知道是否是理想的正確,但在實踐中,我將能夠使用一個命令來訪問字典的數據,如['ID_FILE']['KEY_1']['R_2']['A_3']['P_2'].b
,例如(用方括號來選擇字典的關鍵,併爲一個點想要的數值在括號內)知道b
的值P_2
鍵,A_3
的R_2
的KEY_1
,或['ID_FILE']['KEY_1'].R_2
並獲得一個列表['A_1', 'A_2' , 'A_3']
,即選擇字典的鍵,在最後指示所需的信息,以獲得最終輸出...
結構相當複雜,但概念是可概括的,我會明白通過什麼方法,python模塊或最好的辦法,我可以在Python中實現這一點;如果從外部或從內部開始優選將詞典組織並連接成獨特的大詞典...
編輯1:也就是說,使用前一個鍵的值作爲新的鍵子字典。
編輯2:源文件是一個CIF文件,如this(它是一個包含170925行的大文件)。考慮到CIF文件,我的解析開始的行ATOM,將它們分成列:
KEY = column 6
R = column 8
A = column 3
P = Atom row = list of columns
a = column 1
b = column 2
c = column 3
d = column 4
因此,舉例來說,要獲得殘基的x座標的原子N(柱10)(第3欄) 271(第8欄)的鏈A(第6列),給出這樣的命令['4tvx'] ['A'] ['271'] ['N']。coordX
這不能用一個*小樣本數據集*解釋? – 2015-02-09 16:27:15
請正確編輯您的問題。看到它我感到無聊。 – bluefoggy 2015-02-09 16:28:43
像'd [ID_FILE] [KEY_1] [R_2] [A_3] [P_2]'這樣的屬性查找不適用於所有這些中間列表(假設這些名稱代表字符串)。 – 2015-02-09 16:29:40