vmamontov

recursive_search

Jan 24th, 2023 (edited)
813
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. data = [(41, 61), (41, 51), (41, 49), (41, 59), (41, 58), (41, 47),
  2.         (40, 60), (40, 59), (40, 50), (40, 51), (40, 47), (40, 56),
  3.         (40, 58), (39, 59), (39, 61), (39, 46), (39, 47), (38, 57),
  4.         (36, 58), (37, 56)]
  5.  
  6.  
  7. def add_value(dict_, key, value):
  8.     '''
  9.    Функция для добавления нового значения в словарь.
  10.    Если по ключу в словаре ещё нет никакого значения,
  11.    то по ключу в словаре создаётся множество,
  12.    в которое добавляется первый элемент.
  13.    dict_ - это словарь.
  14.    key - ключ.
  15.    value - значение.
  16.    '''
  17.     prev_value = dict_.get(key, None)
  18.     if prev_value == None:
  19.         dict_[key] = {value}
  20.     else:
  21.         dict_[key].add(value)
  22.  
  23.  
  24. def recursive_search(pid, data, res, id):
  25.     '''
  26.    Рекурсивная функция по обходу списка кортежей.
  27.    '''
  28.  
  29.     add_value(res, id, pid)
  30.  
  31.     for pid_, id_  in data:
  32.         if id_ == pid:
  33.             recursive_search(pid_, data, res, id)
  34.  
  35.  
  36. result = {}
  37.  
  38. for pid, id in data:
  39.     recursive_search(pid, data, result, id)
  40.  
  41. result
Advertisement
Add Comment
Please, Sign In to add comment