Как получить индексы отсортированного списка

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

  • В этой теме 5 ответов, 2 участника, последнее обновление 5 лет назад сделано Sche.
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • #8935 Score: 0
    NikolaBIM
    Участник

    Добрый день!
    Товарищи, будьте добры помогите разобраться.
    По результатам расчета получен список с значениями:
    A=[3,4,3,5,1,2,1]
    Список B получен в результате сортировки списка A:
    B=[5,4,3,3,2,1,1]
    Как можно получить индексы списка A по результатам списка B т.е. C=[3,1,0,2,5,4,6].
    Использование нода List.AllIndicesOf в данном случае не подходит т.к. есть одинаковые значения в списке. Возможно я в не правильном направлении и решение через скрипт Python?!

    #8937 Score: 1
    Sche
    Участник
    34 pts

    #8938 Score: 0
    NikolaBIM
    Участник

    Действительно, в данном варианте то что надо, подходит. Извиняюсь, задачу немного не корректно отобразил(описал)…
    т.е. Список B получается из списка А и после сортировки список B может иметь вид:
    B=[4,3,5,3,2,1,1]
    т.о. индексы будут С=[1,0,3,2,5,4,6]

    #8939 Score: 0
    Sche
    Участник
    34 pts

    Проблема повторяющихся значений:

    Поэтому перед получением списка B необходимо переобозначить дублирующиеся элементы. Вот примерно так:

    #8940 Score: 0
    NikolaBIM
    Участник

    Попробовал предложенный вариант и установил пакет Duplicate Item Indices, но на Dynamo.2.0 он не запустился, возможно не тот пакет установил…
    Предложенный вариант с дублированием Sche натолкнул меня на мысль, а почему бы сверенные значения, после проверки, не заменить в списке…результат к которому пришел см.ниже. Спасибо Sche за помощь! Если есть другие варианты решения, с помощью нодов, с удовольствием рассмотрю.

    #8941 Score: 0
    Sche
    Участник
    34 pts

    нод Duplicate Item Indices из пакета archilab. У меня на динамо 2.0 работает без проблем.

    И предложенный вариант работает, если дублирующихся значений не более двух. Как вариант, можно просто добавлять всем дубликатам буквенные значения по порядку от “a” до “z”

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