Как стать автором
Обновить

Как найти количество всех букв на всех знаках вида «въезд в город Х» в стране? Точный способ ответить на такие вопросы

Время на прочтение7 мин
Количество просмотров4.2K
Всего голосов 11: ↑10 и ↓1+9
Комментарии14

Комментарии 14

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

Тоже подумал, что на том же postgis задача решается быстрее и проще, но и на питоне можно индекс сделать, да даже простой AABB тест тут ускорит процесс.

я думаю про spatialite как самый лёгкий вариант pypi.org/project/spatialite

А шарики для пинг-понга в автобусе так посчитать не получится.

согласен, это минус способа.

полагаю рабочий объем любого автобуса коррелирует с допустимой пассажирской вместимостью — а эта информация открыта

А как у OSM с автобанами и прочими дорогами, которые через город идут и на каждом съезде/выезде город начинается/заканчивается?

нормально wiki.openstreetmap.org/wiki/RU:%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F/%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8
дороги не должны прерываться или понижаться в статусе при транзитном проходе через населенный пункт.
а че есть проблемы ?? :)

В целом статья, возможно, даже может оказаться полезной для новичков в теме, но…
Но вам бы стоило отдать ваш код на ревью кому-то, кто пишет на питоне, прежде чем публиковать.
А так получилось, что вы сделали первый неумелый шаг и тут же запилили статью "как ходить". С таким кодом вы плохому научите.


  • Научитесь пользоваться циклами и итераторами в питоне, чтобы не было этого треша с range.
  • Прочитайте, что такое PEP8 и как следует оформлять код.
  • Что за магические константы? 115 -это число городов у вас? В чем проблема была считать все города из файла и не хардкодить такие вещи? Вы пишете для новичков, а это значт, что нужно очень критично относиться к качеству ода и ошибкам… хотя всегда нужно критично относиться.
  • Научтесь пользоваться форматными строками, ваш запрос с конкатенацией освершенно не читабелен.
  • У вас очень длительный процесс (2 дня… офигеть). Почему бы не разбить его на персистентные этапы? Загрузили данные из overpass — сохранили, обработали порцию, запомнили состсояние — сохранили. При повторном запуске скрипта вы просто загрузите гео-данные из файла (если они там есть) и не будете снова нагружать великолепный но захлёбывающийся оверпасс. Любой сбой и вы не пересчитываете все по новой, а продолжаете процесс почти с того места, где прервались.
Спасибо, всё учту
По последнему пункту: конечно при сбое я всё сначала не начинал, просто смотрел на каком городе застрял и начинал с него.

Очень интересный способ презентации API OpenStreetMap! Спасибо за идею!

В задании очевидная ошибка. Нет знаков «въезд в город N», есть знак «въезд в населенный пункт N». Поэтому ограничиваться 115-ю городами в принципе неверно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории