Как вызвать asyncio def из представления Django (и сделать его неблокирующим)?

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

Эта функция принимает массив целых чисел ранга-1 и возвращает обратно массив ранга-1 целых чисел, каждый элемент соответствует счету этого элемента во входном массиве. Если это описание смущает вас, несите меня и читайте код, который довольно прост:

FUNCTION get_counts(arr) RESULT(rslt)
  INTEGER, DIMENSION(:), INTENT(in) :: arr
  INTEGER, DIMENSION(SIZE(arr)) :: rslt
  INTEGER :: ix
  DO ix = 1, SIZE(arr)
     rslt(ix) = COUNT(arr(ix)==arr)
  END DO
END FUNCTION get_counts

Для входного массива [1,1,2,3,4,1,5] он возвращает [3,3,1,1,1,3,1]. Если OP хочет использовать это в качестве основы для функции, чтобы увидеть, есть ли какое-либо значение, которое происходит n раз, тогда OP мог написать

any(get_counts(rank_1_integer_array)==n)

Если OP обеспокоен тем, какие элементы присутствуют n, тогда довольно просто использовать результат get_counts для возврата к исходному массиву для извлечения этого элемента.

Это решение является прагматическим в том смысле, что оно скупое с временем my , а не со временем компьютера. Мое решение несколько расточительно для пространства, что может быть проблемой для очень больших входных массивов. Любой из решений Родриго может превзойти мои, как во времени, так и в пространстве, в пределе.

0
задан barciewicz 18 January 2019 в 20:56
поделиться