报障系统之多级评论前戏

前戏:

  1. 列表添加:

    v1 = [1,2,3,4]
    v1.append(123)
    print(v1)
    
    data = [
        [11,22,33],
        [44,55,66]
    ]
    
    data[0].append(data[1])
    print(data)
    # data = [
    #     [11,22,33, [44,55,66]],
    #     [44,55,66]
    # ]
    data[1].append(77)
    print(data)
    # data = [
    #     [11,22,33, [44,55,66,77]],
    #     [44,55,66,77]
    # ]
    print(data[0][3])
    #[44, 55, 66, 77]

    列表添加元素练习

  2. 字典添加:

    v1 = {‘k1‘:‘v1‘}
    v1[‘k2‘] = ‘v2‘
    print(v1)
    
    data = [
        {‘k1‘:‘v1‘},
        {‘k2‘:‘v2‘}
    ]
    
    for item in data:
        item[‘kk‘] = ‘vv‘
    
    print(data)

    字典添加元素练习

案例:

  如果parent_id非0,并且parent_id等于id 就添加到id值相同得那行:

# 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_list = [      {         ‘id‘:1,‘content‘:‘xxx‘,parent_id:None,child:[            {‘id‘:4,‘content‘:‘xxx‘,parent_id:1},            {‘id‘:5,‘content‘:‘xxx‘,parent_id:1,child:[               {‘id‘:7,‘content‘:‘xxx‘,parent_id:5},            ]}]         },         {‘id‘:2,‘content‘:‘xxx‘,parent_id:None,child:[            {‘id‘:6,‘content‘:‘xxx‘,parent_id:2},         ]},         {‘id‘:3,‘content‘:‘xxx‘,parent_id:None,child:[            {‘id‘:8,‘content‘:‘xxx‘,parent_id:3},         ]},   ]"""

案例代码:

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]
# 列表生成式

msg_list_dict = {
}

for item in msg_list:
    item[‘child‘]=[]
    msg_list_dict[item[‘id‘]] = item

result = []
for item in msg_list:
    pid = item[‘parent_id‘]
    if pid:
        msg_list_dict[pid][‘child‘].append(item)
    else:
        result.append(item)

for i in result:
    print(i)

解题思路:

  1. 通过冒泡算法进行解答。【推荐】
  2. 通过for嵌套for循环亦可以实现,但是效率较低。

知识扩展:

  算法练习

时间: 2024-10-12 13:14:51

报障系统之多级评论前戏的相关文章

报障系统之多级评论

一.列表前戏: #例1 v1 = [1,2,3,4] v1.append(123) print(v1)#[1, 2, 3, 4, 123] #例2 v1 = {'k1':'v1'} v1['k2'] = 'v2' print(v1)#{'k1': 'v1', 'k2': 'v2'} #例3 data = [ [11,22,33], [44,55,66] ] data1=data[0] data2 = data1.append(data[1]) print(data1)#[11, 22, 33,

报障系统之填充基本数据

通过Django admin填充基本数据: #admin.py from django.contrib import admin from app01 import models admin.site.register(models.Article) admin.site.register(models.Article2Tag) admin.site.register(models.ArticleDetail) admin.site.register(models.Blog) admin.sit

python 报障系统(完)

python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权访问) { '/index.html':[GET,EDIT], '/order.html':[GET,EDIT], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html'

day20 project+查看新闻列表 + 点赞 + 图片验证码 + 评论和多级评论 + 后台管理 + webSocket + kindEditor

Day20回顾: 1. 请求生命周期 2. 中间件 md = [ "file_path.classname" ] process_request[可有可无] process_response[必须有] process_request process_response process_request process_response process_request process_response process_request process_response 路由->函数 3.

报障系统之博客主页及后台管理

个人博客: url函数(路由系统): """baozhang URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app i

Django多级评论

一.原理 #多级评论原理简单原理,弄完之后发现基础白学了 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},

Django第8章: 多级评论树

模拟实现流程 代码 // 传入的参数形式要求 comment_list = comment_list = [ {'id': 1, 'content': '1111', 'parent_id': None, 'children_contents':[]}, ... ] // 转换成嵌套结果列表 def transform_list(comment_list): comment_dict = {} for d in comment_list: id = d.get('id') comment_dic

西游之路——python全栈——报障系统之后台管理

一.后台管理页面布局 1.用户: - 普通用户 知识库+提交报账单+个人信息 - 管理员 知识库+提交报账单+个人信息+处理报账单 - 超级管理员 知识库+提交报账单+个人信息+处理报账单+报障统计信息 权限管理2.菜单: - 知识库管理 文章 标签 分类 - 报障管理 个人报障 报障处理 报障统计信息 - 权限管理 菜单 权限 角色 二.公共模板及路由分发 1.后台菜单栏.导航栏 1 <!DOCTYPE html> 2 <html lang="en"> 3 &

多级评论

# 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'}, # {'