Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. items = [
  2. {"id": "1", "parent": ""},
  3. {"id": "2", "parent": "1"},
  4. {"id": "3", "parent": "1"},
  5. {"id": "4", "parent": ""},
  6. {"id": "5", "parent": "4"},
  7. {"id": "6", "parent": "4"},
  8. {"id": "7", "parent": "4"},
  9. {"id": "8", "parent": "2"},
  10. {"id": "9", "parent": "8"},
  11. ]
  12. """
  13. 利用python的引用特性
  14. a = []
  15. b = ['2']
  16. c = ['3']
  17.  
  18. a.append(b)
  19. b.append(c)
  20. if __name__ == '__main__':
  21. print(a)
  22. [['2', ['3']]]
  23. """
  24.  
  25.  
  26. def flat2nested(datas):
  27. res = []
  28. tree = {item['id']: item for item in datas}
  29. for obj in datas:
  30. if not obj['parent']:
  31. root = tree[obj['id']]
  32. res.append(root)
  33. else:
  34. parent_id = obj['parent']
  35. if 'children' not in tree[parent_id]:
  36. tree[parent_id]['children'] = []
  37. tree[parent_id]['children'].append(tree[obj['id']])
  38. return res
  39.  
  40.  
  41. if __name__ == '__main__':
  42. print(flat2nested(items))
  43.  
  44. """
  45. data = [
  46. {
  47. 'id': '1',
  48. 'parent': '',
  49. 'children': [
  50. {
  51. 'id': '2',
  52. 'parent': '1',
  53. 'children': [
  54. {
  55. 'id': '8',
  56. 'parent': '2',
  57. 'children': [
  58. {
  59. 'id': '9',
  60. 'parent': '8'
  61. }
  62. ]
  63. }
  64. ]
  65. },
  66. {
  67. 'id': '3',
  68. 'parent': '1'
  69. }
  70. ]
  71. },
  72. {
  73. 'id': '4',
  74. 'parent': '',
  75. 'children': [
  76. {
  77. 'id': '5',
  78. 'parent': '4'},
  79. {
  80. 'id': '6',
  81. 'parent': '4'},
  82. {
  83. 'id': '7',
  84. 'parent': '4'
  85. }
  86. ]
  87. }
  88. ]
  89. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement