|
|
||||||
Преобразовать строку, разделить числа21.02.2019, 05:35. Показов 4572. Ответов 16
Метки нет (Все метки)
Преобразовать строку - преобразовал, но уверен, что можно улучшить скорость выполнения программы. Важна производительность. Вот примеры строк. Их особенность в том, что начинаются они с пробела, после слова (либо слов) следует два пробела (хотя это даже не пробелы, как я понял), после чего идет ряд чисел, которые склеены друг с другом. Я разбил их по точке. Интересно, какие ещё есть варианты улучшения данного кода.
Нюанс. Числа могут быть как меньше, так и больше 10.
0
|
||||||
| 21.02.2019, 05:35 | |
|
Ответы с готовыми решениями:
16
Преобразовать строку S в строку длины N следующим образом
|
|
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
|
||||||
| 21.02.2019, 09:20 | ||||||
|
m0nte-cr1st0, ну если подгонять конкретно под эти 2 примера, то можно через регулярные выражения
1
|
||||||
|
|
|
| 21.02.2019, 09:27 | |
|
m0nte-cr1st0,
1. Кажется, текстовое описание ваших строк не соответствует примерам. Строка '*William Hill**2.102.254.8088.6%' начинается не с пробела, а со звёздочки. 2. Имхо, в вашем случае задача без проблем параллелится. В идеале, хорошо было бы параллельно считать куски файла (я не знаю, как это сделать, но наверняка способ есть), а уж потом отправить их на параллельную обработку - элементарно. 3. И, раз уж зашла речь про чтение, хорошо бы сравнить потери времени на чтение и разбиение. Может статься, что на разбиение - меньше (чтение с диска - операция долгая) и оптимизация в эту сторону не стоит свеч.
1
|
|
|
|
|||||||||
| 21.02.2019, 12:09 [ТС] | |||||||||
|
Добавлено через 4 минуты Resistanse, да, тут скорее всего через регулярки нужно решать...
0
|
|||||||||
|
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
|
|
| 21.02.2019, 12:15 | |
|
m0nte-cr1st0, а что должно быть? Только 18bet в первом случае?
0
|
|
|
|
|
| 21.02.2019, 12:45 [ТС] | |
|
Resistanse, желательно да. хотя это уже не столь принципиально, конечно...
Добавлено через 21 минуту Resistanse, только сейчас нормально присмотрелся. В первом случае должно быть ['18bet', '2.20', '2.50', '5.75'', '97.2%']
0
|
|
|
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
|
||||||
| 21.02.2019, 13:03 | ||||||
|
m0nte-cr1st0, откуда данные берешь? Там кодировка другая, если выполнять код, который я скинул, то будет нормально отображаться. Попробуй так сделать со входными данными:
Добавлено через 7 минут Или же в IDE стоит неправильная кодировка, в pycharm её можно настроить в правом нижнем углу
0
|
||||||
|
|
|
| 21.02.2019, 13:28 [ТС] | |
|
Resistanse, я Atom использую, но там utf-8
0
|
|
|
|
||||||
| 21.02.2019, 13:35 [ТС] | ||||||
|
Resistanse, не вариант
0
|
||||||
|
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
|
||||||
| 21.02.2019, 13:58 | ||||||
Сообщение было отмечено m0nte-cr1st0 как решение
Решение
m0nte-cr1st0, вот так должно сработать
1
|
||||||
|
|
||
| 21.02.2019, 14:19 | ||
|
Если поступают они медленнее, чем парсятся - значит, bottleneck - это поступление данных и ускорение парсинга погоды не сделает. Если поступают они быстрее - значит, имеет смысл параллелить. Пока новые данные идут, старые уже парсим. Несколько потоков, быстрое поступление раскидывает строки по потокам. Добавлено через 9 минут Да, кстати, вроде этих ихние новомодные asyncio как раз к таким задачам подходят. Но это уже разбираться надо, я туда глубоко не влезал.
1
|
||
|
|
||
| 21.02.2019, 14:24 [ТС] | ||
|
0
|
||
|
|
|
| 21.02.2019, 14:47 [ТС] | |
|
Resistanse, да, это всё то... за исключением того, что на входе должны быть не кодировки символов, а сами символы... не знаю как объяснить..
вот, смотрите скрины. вверху - код с вашими входными данными, внизу - с моими.
0
|
|
|
|
|||
| 21.02.2019, 17:51 | |||
|
2) Использовать squeeze, чтобы replace all sequences of whitespace chars with a single space. 3) Использовать правильный XPATH. Судя по всему вы неправильно парсите раз у все склеивается. Добавлено через 5 минут
0
|
|||
|
|
|||||
| 21.02.2019, 17:56 [ТС] | |||||
|
Добавлено через 51 секунду
0
|
|||||
|
|
|||||||||||
| 21.02.2019, 20:24 | |||||||||||
Сообщение было отмечено m0nte-cr1st0 как решение
Решение
squeeze это функция сжатия множественных пробельных символов (не только пробелов) в строке до одного. Позволяет нормализовать строку.
Используется в web фреймворках. Например в Tornado: tornado.escape.squeeze(value) Реализация:
К примеру Crawl-delay: 0.5 разрешает запрашивать страницы сайта не чаще чем через каждые полсекунды. Исходя из указанного лимита нужно будет подстраивать скорость запросов (причем вряд ли в сторону увеличения, чаще наоборот). Редкий сайт позволяет себя DDOS-ить запросами безнаказанно. Но если явных ограничений нет - тогда нужно смотреть опытным путем. Сделать тест на 10-20 запросов в секунду и посмотреть как долго сайт будет нормально отвечать без 500-x ошибок и разрывов коннекта. Исходя из этого уже думать стоит ли вообще пробовать параллелить запросы. Но что касается самой обработки данных (уже после запроса), то если она действительно bottleneck для приложения, имеет смысл использовать многопоточную или асинхронную очередь. Ну а таблицу, конечно же, нужно изначально разбирать по ячейкам.
1
|
|||||||||||
|
|
|
| 21.02.2019, 21:08 [ТС] | |
|
0
|
|
| 21.02.2019, 21:08 | |
|
Помогаю со студенческими работами здесь
17
Как разделить и преобразовать строку из string в int? Преобразовать строку из файла, содержащую запись десятичного числа, в строку с двоичным числом
Разделить строку данных на отдельные числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|