Сортировка по значению главного элемента и входящих в него

Главная Форумы Задать вопрос Сортировка по значению главного элемента и входящих в него

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Автор
    Сообщения
  • #5571 Score: 0
    txt
    Модератор
    86 pts

    Имеется список из элементов помещений и ограждений (окна, двери, стены).

    У каждого ограждения записано в параметр к какому номеру помещения оно относится.

    Имея номер помещения и параметр ограждений с записанным в него номером помещения необходимо отсортировать питоном этот список (т.е. ПОМЕЩЕНИЯ И ЭЛЕМЕНТЫ) на подсписки с помещениями и входящими в него ограждениями таким образом:

    #5579 Score: 0
    txt
    Модератор
    86 pts

    Возможно аналогично удобней отсортировать в таком виде:

    #5580 Score: 0
    txt
    Модератор
    86 pts

    Плохо искал)

    ответ был уже на этом форуме (пример скрипта на скрине)….Теперь вопрос как отсортировать список (под List.UniqueItems) чтобы вначале подсписков шло помещение, затем его номер и далее остальные элементы…

    Думаю надо что-то добавить после:

    for i in IN[0]:
    name = UnwrapElement(i).Category.Name
    if name == “Помещения”:

      {ЗДЕСЬ УСЛОВИЕ: ТО ПЕРЕМЕСТИТЬ В НАЧАЛО СПИСКА}

    Ну а как еще переместить цифру (номер помещения) на второе место даже не знаю..

    как то так….

    #5581 Score: 0
    Oleg
    Участник
    28 pts

    Что-то у вас запутанно как-то вышло) Можете приложить файлы (rvt + dyn)?

    #5582 Score: 0
    txt
    Модератор
    86 pts

    Да , конечно..

    прикрепляю файл rvt там скромный домик на 1 этаже и dyn файлик :

    https://yadi.sk/d/achZpeEW3HfPBF

     

    #5583 Score: 1
    Oleg
    Участник
    28 pts

    Вот так получилось:

    #5584 Score: 0
    txt
    Модератор
    86 pts

    Ничего себе какой компактный код…Прям вИсшый пилотаж! )

    Спасибо огромное!

    Буду изучать Ваш скрипт…

    #6400 Score: 0
    txt
    Модератор
    86 pts

    Подскажите
    а почему здесь используется именно YIELD ?
    я пытался самостоятельно понять, изучать его назначение и случаи применения, однако так ничего конкретного и не понял…
    на просторах сети самое более менее ясное нашел тут

    Python Yield


    но все равно ясности лично для меня так и не внесло

    #6401 Score: 0
    txt
    Модератор
    86 pts

    Я конечно могу ошибаться , но для того чтобы как бы не хранить в памяти список , т.е. не создавать заполнение списка lits=[] , потом list.append
    а хранить как бы виртуально этот список….
    именно хранить тут: sorted(rooms(), key=…)
    Поправьте , если не так…

    p.s. мне очень нравится как построен код в ответе #5583 и я хочу научиться делать также)

    #6411 Score: 0
    txt
    Модератор
    86 pts

    Без yield вариант (для результата аналогичного ответу #5583):

    #7415 Score: 1
    nikita
    Участник
    2 pts

    Всем добрый день, что-то похожее:
    есть перекрытие и записанный в него параметр помещения.
    нужно отсортировать их по типу, и по номерам помещений которые есть для этого типа. (что бы потом свести их в один параметр )

    т.е нужно

    пол тип 1

    2

    4

    #7416 Score: 0
    Oleg
    Участник
    28 pts

    Например, можно так

    #7417 Score: 1
    nikita
    Участник
    2 pts

    супер, большое спасибо. теперь понятно. логично же что это скорее группировка чем сортировка)

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Для ответа в этой теме необходимо авторизоваться.