1
我有方法:的Python - 生成父/子字典結構
@staticmethod
def get_blocks():
"""Public method that can be extended to add new blocks.
First item is the most parent. Last item is the most child.
Returns:
blocks (list)
"""
return ['header', 'body', 'footer']
作爲文檔字符串描述,這種方法可以擴展,以返回任何種類的特定的順序塊。
所以我想做一個映射,指出哪個塊是父母/孩子彼此(只關心「最近」的父母/孩子)。
def _get_blocks_mapping(blocks):
mp = {'parent': {}, 'child': {}}
if not blocks:
return mp
mp['parent'][blocks[0]] = None
mp['child'][blocks[-1]] = None
blocks_len = len(blocks)
if blocks_len > 1:
mp['parent'][blocks[-1]] = blocks[-2]
for i in range(1, len(blocks)-1):
mp['parent'][blocks[i]] = blocks[i-1]
mp['child'][blocks[i]] = blocks[i+1]
return mp
所以導致如果我們有三個街區像get_blocks
方法是這樣的:
{
'parent': {
'header': None,
'body': 'header',
'footer': 'body',
},
'child': {
'header': 'body',
'body': 'footer',
'footer': None
}
}
那麼它的工作原理,但它是一種哈克給我。所以也許有人可以建議一個更好的方法來創建這樣的映射? (或者也許有創建父/子映射的一些常用的方式使用不同的結構我打算用?)
感謝。這看起來更優雅。 – Andrius