1. 程式人生 > >多級評論

多級評論

再次 bsp 無需 ash div default 需要 想要 數據

# data=[
#     [11,22,33],
#     [44,55,66]
# ]
# data[0].append(data[1])
# print(data)
# data[1].append(77)
#
# 由於[11, 22, 33, [44, 55, 66, 77]]和[[11, 22, 33, [44, 55, 66, 77]], [44, 55, 66, 77]]
#
# 引用的是同一塊內存地址,所以誰添加了內容對應的也跟隨添加


# data=[
#       {‘k1‘:‘v1‘},
#       {‘k2‘:‘v2‘}
#       ]
#
# for item in data:
# item[‘kk‘]=‘vv‘ # # # # python裏面列表和字典引用的是引用類型,當我們拿到地址被操作了,會發生級聯變化;如果想要再獨立一份就需要copy() # # msg_list = [ # {‘id‘:1,‘content‘:‘xxx‘,‘parent_id‘:None}, # {‘id‘:2,‘content‘:‘xxx‘,‘parent_id‘:None}, # {‘id‘:3,‘content‘:‘xxx‘,‘parent_id‘:None}, # {‘id‘:4,‘content‘:‘xxx‘,‘parent_id‘:1}, # {‘id‘:5,‘content‘:‘xxx‘,‘parent_id‘:4},
# {‘id‘:6,‘content‘:‘xxx‘,‘parent_id‘:2}, # {‘id‘:7,‘content‘:‘xxx‘,‘parent_id‘:5}, # {‘id‘:8,‘content‘:‘xxx‘,‘parent_id‘:3}, # ] # # v=[row.setdefault(‘child‘) for row in msg_list] # # # # #註意列表生成公式裏面 不能出現=等賦值操作,可以使用方法 # # print(msg_list) # # #方式2 # # msg_list_dict={} # # msg_list_dict={
# # 1, {‘id‘:1,‘content‘:‘xxx‘,‘parent_id‘:None}, # # 2, {‘id‘:2,‘content‘:‘xxx‘,‘parent_id‘:None}, # # } # #字典的在存儲的時候,鍵會轉換成一個hashs值,這個hash值和內存地址相關,# 無論字典裏的鍵值對有多大,都可以一次的尋找到key對應的value # #字典查詢就是數據庫裏的hansh 索引,直接拿到key就可以快得驚人的獲取到value # #無需向列表那樣 查詢 是 一個個順序 遍歷 # # #所以定義一個字典 方便我們查找 評論信息,而且因為Python是數據引用類型,相同數據引用一塊內存,也不會占用內存 # for item in msg_list: # item[‘child‘]=[] # msg_list[item[‘id‘]]=item # # #程序運行到此處,會有兩個msg_list msg_list_dict # ret=[] # for item in msg_list: # pid=item[‘parent_id‘] # if pid: # msg_list[pid][‘child‘].apend(item) # else: # ret.append(item) msg_list = [ {id:1,content:xxx,parent_id:None}, {id:2,content:xxx,parent_id:None}, {id:3,content:xxx,parent_id:None}, {id:4,content:xxx,parent_id:1}, {id:5,content:xxx,parent_id:4}, {id:6,content:xxx,parent_id:2}, {id:7,content:xxx,parent_id:5}, {id:8,content:xxx,parent_id:3}, ] msg_dict={} #1、給所以 評論設置一個 child鍵=[空列表的值] [row.setdefault(‘child‘,[]) for row in msg_list] 列表生成器方法 #3、定義一個查詢用的字典 for item in msg_list: item[child]=[] msg_dict[item[id]]=item #2、把帶有‘parent_id‘的鍵的字典,添加到對應的父字典裏(你會想到再次遍歷msg_list,但是多層循環效率低下,於是重新定義一個字典) for item in msg_list: pid=item[parent_id] if pid: msg_dict[pid][child].append(item) # 4、找出根評論· root_coment=[] for item in msg_list: if not item[parent_id]: root_coment.append(item) for item in root_coment: print(item)

多級評論