Группировка списка

Главная Форумы Задать вопрос Группировка списка

В этой теме 16 ответов, 5 участников, последнее обновление  txt 1 неделя, 5 дн. назад.

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Сообщения
  • #7160 Score: 0

    Anton Churakov
    Участник
    1 pt

    Здравствуйте, не могу сообразить как сгруппировать список по сходным значениям с помощью List.GroupByKey. Надо чтобы получился список вида: { { ff,ff },  {aa,aa,aa},   { ff,ff }  }

    #7161 Score: 0

    Анатолий
    Участник
    5 pts

    Добрый день. Антон. Уточните пожалуйста суть задачи: вам нужно группировать элементы по уникальности или по порядку? Если по уникальности элементов группировать, то данный нод справляется прекрасно. Если же как в вашем примере после “аа” снова следует текст “ff”, то сортировка будет уникальных элементов.

    #7162 Score: 0

    Anton Churakov
    Участник
    1 pt
    • Уникальных элементов. Мне нужно из списка кторый в верхнем кодблоке получить список в ноде watch
    #7163 Score: 0

    Анатолий
    Участник
    5 pts

    Уникальные элементы, насколько я понимаю, это “ff”, и “aa”. Чтобы получить окончательный вид списка Watch, мне кажется, надо прибегать к помощи питона.

    #7164 Score: 1

    ИваСерж
    Модератор
    46 pts

    Написал скриптик.
    Насколько я понимаю, группировать элементы надо “в порядке следования”, а не объединяя.

    “аа” “аа” “аа” “бб” “бб” “аа”
    Т.е. “аа” “аа” “аа” – первый список. Потом следование прерывается “бб”бб” – второй список, и снова “аа” “аа” – третий список.
    Приду домой, выложу ))

    #7167 Score: 0

    Anton Churakov
    Участник
    1 pt

    Да, все верно, группировать надо в порядке следования, буду признателен за скрипт, хотя я был уверен что это можно сделать без питона)

    #7169 Score: 1

    Семен
    Участник
    1 pt

    list1 = IN[0]
    listGroups = []
    group = []
    for index, string in enumerate(list1):
    try:
    if string == list1[index + 1]:
    group.append(string)
    else:
    group.append(string)
    listGroups.append(group)
    group = []
    except IndexError:
    group.append(string)
    listGroups.append(group)
    OUT = listGroups

    #7170 Score: 0

    ИваСерж
    Модератор
    46 pts

    Мой менее изящный код…
    https://pastebin.com/M2KiHf7D

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

    #7175 Score: 0

    Anton Churakov
    Участник
    1 pt

    Всем спасибо, оба кода работают.

    #7206 Score: 0

    Anton Churakov
    Участник
    1 pt
    #7207 Score: 0

    Семен
    Участник
    1 pt

    https://pastebin.com/AT9YiNF6

    Когда он не отрабатывает?

    А еще, кто-нибудь знает, как запустить динамо без ревита?

    #7208 Score: 0

    txt
    Модератор
    74 pts

    У вас на рабочем столе должен быть ярлык Динамо , его и запускаете

    #7209 Score: 0

    Семен
    Участник
    1 pt

    При установке динамо никогда ярлык у меня не появлялся.

    Вы не могли бы выложить путь и параметры(если есть), которые прописаны в свойствах ярлыка? Свойства, вкладка Ярлык, поле Объект

    #7210 Score: 0

    ИваСерж
    Модератор
    46 pts

    C:\Program Files\Dynamo\Dynamo Revit\1.2\DynamoSandbox.exe
    Ярлыков тоже нет

    #7211 Score: 0

    txt
    Модератор
    74 pts

    C:\Program Files\Dynamo\Dynamo Revit\1.3\DynamoSandbox.exe

    У меня при установке по моему на рабочем столе создался ярлык

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)

Для ответа в этой теме необходимо авторизоваться.