Как выполнить поиск по короткому списку большое количество раз?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как выполнить поиск по короткому списку большое количество раз?

Сообщение Anonymous »

Мне приходится выполнять поиск в небольшом списке (от 0 до 10 элементов) большое количество раз, и мне интересно, какой лучший способ сделать это — использовать Python (в частности, IronPython 2.7)
Количество поисковых запросов всегда будет во много раз превышать количество элементов в списке для поиска. Например, если в списке для поиска 5 элементов, мне, скорее всего, придется искать в этом списке 50 или более раз. Поисковые прогоны не будут последовательными. Другими словами, у меня есть функция, которая выполняет множество действий с объектом, частью которой является поиск. Функция вызывается неоднократно с разными объектами.
Количество совпадений для любого заданного поиска, скорее всего, будет равно нулю, но легко может быть больше одного. А мне нужны все спички. Функция, вызывающая поиск, не использует результаты; скорее это другая функция, обрабатывающая другие типы объектов, которые будут использовать результаты.
У меня есть такая структура данных:

Код: Выделить всё

  MyDataClass:
ListToSearch ( (AcadEntID, Pt1, Pt2) (AcadEntID Pt1, Pt2) ...)
Results { AcadEntID : ( (RevitLineID,  EndPtInx) (RevitLineID,  EndPtInx) ...),
(RevitLineID,  EndPtInx) (RevitLineID,  EndPtInx) ...))
AcadEntID : ( (RevitLineID,  EndPtInx) (RevitLineID,  EndPtInx) ...),
(RevitLineID,  EndPtInx) (RevitLineID,  EndPtInx) ...))

}
Вводными данными для каждого будет RevitLineID (из которого можно взять конечные точки: PtA и PtB)
Тест задает следующий запрос: Для каждого AcadEntID, находится ли PtA в рамке с центром в Pt1? Или это внутри рамки с центром в точке 2? Повторите для PtB. Каждая точка имеет значение X и Y.
Если это более эффективно, ListToSearch можно разбить на несколько частей, при этом каждая точка останется связанной с AcadEntID.
Эта программа разрабатывается в RevitPythonShell, но в конечном итоге станет частью надстройки PyRevit.
И вот она. Мне нужен очень быстрый способ многократного поиска в коротком списке.
С уважением;
Мишель

Подробнее здесь: https://stackoverflow.com/questions/790 ... r-of-times
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как выполнить поиск по короткому списку большое количество раз?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Логическое «или» с правым троичным выражением не приводит к короткому замыканию
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Более быстрый поиск по списку
    Гость » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Гость
  • Эффективный текстовый поиск по большому списку терминов: Python, PostgreSQL и Elasticsearch
    Anonymous » » в форуме Python
    0 Ответы
    108 Просмотры
    Последнее сообщение Anonymous
  • Поиск по определенному списку веб-сайтов с помощью Google Поиска
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»