rani05 Ответов: 2

Как написать функцию для распечатки иерархического дерева сотрудников


Получив список сотрудников и их начальников в виде csv-файла, напишите функцию, которая распечатает иерархическое дерево сотрудников.

Образец входного = Сэм, Ян, технический руководитель, 2009 / Ян, нуль, генеральный директор,2007/ Фред, Сэм, разработчик 2010,

Формат - имя, руководитель, назначение, год вступления

Выход должен быть

Ian CEO 2007

-Сэм технический руководитель 2009

--Разработчик Фред 2010

Что я уже пробовал:

import csv
with open("list.csv", 'r') as csv_file:
list_reader = csv.reader(csv_file, delimiter=",")
employee_list = {
    name: boss.strip() for name, boss, designation, year in list_reader}
mgrs = [k for k, v in employee_list.items() if v == '']
while mgrs:
    print ", ".join(mgrs)
    mgrs = [k for k, v in employee_list.items() if v in mgrs]


имя: boss. strip () для имени, босса, обозначения, года в list_reader}
ValueError: слишком много значений для распаковки

2 Ответов

Рейтинг:
4

rani05

strq = "Sam, Ian, technical lead, 2009 / Ian, NULL, CEO,2007/Fred, Sam, developer, 2010"
def treeEmployee(infoStr):
	str1 = infoStr.split("/")
	s2 = []
	for i in str1:
		s2.append(i.split(","))
	for i in range(len(s2)):
		for j in range(1, len(s2)):
			if s2[i][1] == s2[j][0]:
				s2[i], s2[j] = s2[j], s2[i]
	return s2


Можем ли мы сделать это таким образом?


Рейтинг:
0

Richard MacCutchan

Я не совсем понимаю, что должен делать этот код. однако я думаю, что вы должны использовать string.split[^], нет string.strip[^].