Аналог нода Strings Sort Dublicate

Главная Форумы Задать вопрос Аналог нода Strings Sort Dublicate

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #10606 Score: 0
    Всеволод
    Участник

    Добрый день! В пакете LunchBox был нод (прикрепил изображение), позволяющий быстро избавиться от дубликатов строк в группах списка (то есть не просто аналог split из Python, что убирает сразу все повторяющиеся значения из списка, а убирает их в группах (например, если сортируем по помещениям стены и у каждого помещения свои стены с одинаковыми названиями, и нам необходимо узнать лишь эти самые названия в каждом помещении а не просто список (надеюсь понятно привёл пример). Так вот, есть ли какой-то аналог данного скрипта сейчас или может всё решит Python (в программировании не селён, да и как работать со вложенными списками не очень понимаю), так как в Revit 2022 сейчас LunchBox не хочет работать.

    #10608 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Привет. Предлагаю написать что-то похожее на питоне. Только надо задание уточнить.
    Например, на входе список списков из которого надо отфильтровать дубликаты.
    Список вида
    [[“a”,”a”,”b”,”b”,”c”,”c”],[“a”,”a”,”x”,”x”,”y”,”y”]]

    Отфильтровываем элементы только в конечных списках.
    Например, “а” во втором списке должно остаться.
    Структура списков должна остаться. Порядок сортировки не имеет значения.
    Результат должен быть в следующем виде.
    Сортировка объектов внутри списков случайна.
    [[“c”, “a”,”b”,],[“x”, “a”, “y”]]

    Я задание правильно понял?

    #10660 Score: 0
    Всеволод
    Участник

    Добрый день! Да, всё правильно, проблему уже решил как раз таки использованием PythonScript
    import sys
    import clr
    clr.AddReference(‘ProtoGeometry’)
    from Autodesk.DesignScript.Geometry import *

    materials = IN[0]
    resp = []

    for row in materials:
    tmp = []
    for material in row:
    if material not in tmp:
    tmp.append(material)
    respStr = (“, “).join(tmp)
    resp.append(respStr)

    OUT = resp

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