Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2021, 10:43   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию Создать дерево объектов

здравствуйте, поясню
у меня есть данные, как это сделать по старинке через условия я в курсе....
так вот строка
;привет !Иван! или !Степан!;
то, что обёрнуто в знаки между ! и ! это варианты
и вытекает, следом идут варианты для 1-го и 2-го
;привет !Иван! или !Степан!;привет, привет !Лидии! и !Лёше!;привет, привет !Лилии! и !Леониду!;
и вот далее варианты
!Лидии! !Лёше! !Лилии! !Леониду!
что-то ещё
и на выходе

;привет !Иван! или !Степан!;
;привет, привет !Лидии! и !Лёше!;
что-то ещё

;привет !Иван! или !Степан!;
;привет, привет !Лилии! и !Леониду!;
что-то ещё

как это проще реализовать? можно с примерами, спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 12:07   #2
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

А можно попонятней объяснить вопрос? Я, конечно, так же объясняю, но, всё-таки, не очень понятно.
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 25.01.2021, 12:53   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

это продолжение темы, в которой ответили: https://programmersforum.ru/showthread.php?t=338363
щас я начну писать по старинке-подскажите как это укоротить, спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 13:18   #4
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

Т.е. задача отсортировать слова из строки на одинаковые? Или что?
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 25.01.2021, 15:54   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

Цитата:
Сообщение от VeryStupidPerson Посмотреть сообщение
Т.е. задача отсортировать слова из строки на одинаковые? Или что?
не торопитесь....
пока, сделал нулевые варианты, это те, которые без вариантов
Код:
VAR0 = []
for x in var1:
    print(x)
    if str(x).count(';') == 1:
        VAR0.append(x)

print(f'''{VAR0}, 
{len(VAR0)}''') #214
подскажите как аппендить чтобы
[['привет Иван;'], ['привет Сте....
как бы избавиться от лишнего и ;'], [' были просто запятой
и в начале и в конце чтобы не было двух открывающихся и закрывающихся прямоугольных скобок-чтобы была одна, мелочь, а не приятно))
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 16:23   #6
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

Вы так и не пояснили, что Вы хотите сделать. Что у Вас есть, что задача получить, в чём проблема.
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 25.01.2021, 19:12   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

был текстовый файл с текстом
1vz;привет Иван;\n - узел без веточек
1vz;привет Степан;\n - узел без веточек
1vz;привет !Иван! или !Степан!;ок, привет Лидии;ок, приветЛилии;\n
выше это узел с двумя веточками, они следом через ; и они-веточки концевые, потому, что у них нет текста с ! и !, а могут быть в глубину до 6 позиций быть
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 19:30   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

чудо чудное:
Код:
from anytree import Node, RenderTree

udo = Node("Udo")
marc = Node("Marc", parent=udo)
lian = Node("Lian", parent=marc)
dan = Node("Dan", parent=udo)
jet = Node("Jet", parent=dan)
jan = Node("Jan", parent=dan)
joe = Node("Joe", parent=dan)

# print(udo)
# Node('/Udo')
# print(joe)
# Node('/Udo/Dan/Joe')

for pre, fill, node in RenderTree(udo):
    print("%s%s" % (pre, node.name))
# Udo
# ├── Marc
# │   └── Lian
# └── Dan
#     ├── Jet
#     ├── Jan
#     └── Joe

# print(dan.children)
# (Node('/Udo/Dan/Jet'), Node('/Udo/Dan/Jan'), Node('/Udo/Dan/Joe'))
попробую....
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 19:54   #9
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

получается шикарно-одно не понял, дерево у меня с 900 узлов и веточки вглубь до 6-ти достигают, эти узлы и веточки в текстовом файле прописаны, это как лучше сгенерить код из поста строки 3-9 - а потом запустить в Питоне?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 21:00   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если удобнее работать с текстовым файлом, то можно его скриптом каждый раз парсить перед использованием, а не преобразовывать сейчас в код.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать бинарное дерево shilovec5377 Visual C++ 0 07.06.2015 12:38
Создать двоичное дерево поиска. Си Yakoff Помощь студентам 4 12.06.2013 21:45
Создать дерево решений (Delphi) Сурка Помощь студентам 16 07.05.2010 20:01