Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 8

Вывод дерева многомерным списком

12.01.2020, 11:19. Показов 7186. Ответов 5

Студворк — интернет-сервис помощи студентам
Необходимо вывести дерево многомерным списком как в примере ниже. Какие существуют способы, чтобы это реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2020, 11:19
Ответы с готовыми решениями:

Как обращаться с многомерным списком?
Здравствуйте , нужно понять как парсить многомерный список , а точнее как правильно обращаться к определённому столбцу , меня интересует...

Сравнение даты с многомерным массивом и вывод совпадений
Всем доброго здравия и с наступившим новым годом! Пусть в этом году количество багов будет нулевым а заработок будет минимум из 6 знаков! ...

Работа с многомерным массивом и вывод данных
Добрый день. Имеется массив вида Array ( => 16 => 20 => Array ( => Значение 1 ...

5
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
12.01.2020, 11:32
cryingliliput, Вам так(на примере файлов и папок)?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
 
 
def scan_dir(path):
    file_count = 0
    catalog_count = 0
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isfile(file_path):
            file_count += 1
        else:
            catalog_count += 1
            scan_dir(file_path)
    print('[', path, ']\n\t', 'files: %s' % file_count, 'catalogs: %s' % catalog_count)
 
 
if __name__ == '__main__':
    scan_dir(path=os.getcwd())
0
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 8
12.01.2020, 11:38  [ТС]
Немного предыстории. Я пишу парсер для паскаля и сейчас на том моменте, когда мне нужно вывести дерево. Не думаю, что данный способ мне подойдет.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
12.01.2020, 11:44
Цитата Сообщение от cryingliliput Посмотреть сообщение
Немного предыстории. Я пишу парсер для паскаля и сейчас на том моменте, когда мне нужно вывести дерево. Не думаю, что данный способ мне подойдет.
Тогда покажите пример входных данных (словарь, который можно будет скопировать к себе в программу). А то Вы только выходные указали, а о входных гадать нужно.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.01.2020, 13:25
Рекурсией будет удобнее.

Добавлено через 13 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Node:
    __slots__ = 'name', 'ls'
    def __init__(self, name, ls=None):
        self.name = name
        self.ls = ls or []
 
data = Node('public class Program', [
    Node('int', [Node('23'), Node('45')]),
    Node('float')
    ])
 
def render(node, prefix=''):
    print(prefix, node.name)
    if len(node.ls) == 0:
        return
    for i in node.ls[:-1]:
        render(i, prefix + '  +')
    render(node.ls[-1], prefix + '  =')
 
render(data)
1
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 8
12.01.2020, 14:26  [ТС]
Самый простой пример: "a + b". Выражение распарсится на "a", "b" и "+" соответственно. a и b - "листья" дерева, "+" - корень. Вывод при этом должен выглядеть приблизительно следующим образом:
┕ +
┕ a
┕ b
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2020, 14:26
Помогаю со студенческими работами здесь

Вывод записей в поле со списком в зависимости от другого поля со списком
Уважаемые асы access, помогите пожалуйста! Сразу хочу признаться, я совсем чайник, только учусь.. Помогите с поиском записей (поле...

Ввод дерева. Вывод дерева.[тут есть решение] [turbo prolog]
domains treetype=tree(integer,treetype,treetype);empty() predicates space(integer) output(treetype,integer) ...

Вывод списка узлов дерева (при обходе этого дерева в прямом порядке)
2. Написать программу, выводящую списки узлов дерева, при обходе этого дерева в прямом порядке. есть решения ?

Создать клон дерева папок со списком элементов
Здравствуйте, товарищи. Есть папка, к примеру Music. В ней есть папки, подпапки и файлы. Необходимо создать вложеную папку с таким же...

Вывод бинарного дерева в виде дерева
Помогите пожалуйста вывести дерево в консоль в виде дерева. Саму структуру я написал и обход сделал. и даже выводит, но только в строчку, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru