無制限の分類、分類の反復、再帰分類

RES = [] 
递归分类法
DEF get_con(データ、PARENT_ID = 0、CLAS = TRUE):
:CLAS場合
res.clear()
iについてのデータで:
もしI [ "PARENT_ID"] == PARENT_ID:
res.append( I)
get_con(データ、PARENT_ID = I [ "CAT_ID"]、CLAS =偽)
リターンRES

RES2 = get_con(データ)
の印刷(RES2)
迭代分类法
データ= [
{ "CAT_ID":1、 "名前":」北京」、 "PARENT_ID":0}、
{ "CAT_ID":2、 "名称": "上海"、 "PARENT_ID":0}、
{ "CAT_ID":3、 "名前": "沙河"、 "PARENT_ID" :1}、
{ "CAT_ID":4、 "名前" "SB镇"、 "PARENT_ID":3}、
{」CAT_ID ":5、"名前":"昌平」、 "PARENT_ID":1}、
{ "CAT_ID":6、 "名前": "青浦"、 "PARENT_ID":2}
]
DEF get_tree(データ)
リスト= []
ツリー= {}
データにおけるIの場合:
ツリーは[I [ "CAT_ID"] = I
ツリー割り当てkがデータ内CAT_IDされた#最初、Vは、各データのデータである
データでDIC用:
DATA_NUM = DIC [ "PARENT_ID"]
IFないDATA_NUM:
lists.append(木[DIC [ "CAT_ID"]])
#PARENT_ID は、抽出されたリストに追加2つだけゼロデータ取ら
:他に
ない場合はツリーで"chiden" [DATA_NUMを] :
#裁判官は、この分野ではありません。この辞書
ツリー[DATA_NUM] [「chiden」] = []
このフィールドに追加することではありません、その後のリストになり
、ツリー[data_num] [「chiden」 ]アペンド(木[DIC。 【 "CAT_ID"]])
りリスト
RESS = get_tree(データ)
RESSでIのための:
印刷(RESS)

おすすめ

転載: www.cnblogs.com/yangxinpython/p/11815993.html