|
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
|
||||||
Когда длина словаря больше 100 записей, удалить первые 5027.07.2021, 16:43. Показов 3446. Ответов 8
Метки нет (Все метки)
Как сделать, чтобы когда длин
И как можно оптимизировать данную часть кода? Суть: Есть массив координат объектов + их id Из цикла в цикл я ищу объекты которые находятся в range(10 * i - 5, 10 * i + 5) по оси x Затем записываю номер границы в массив, удаляю дубликаты и считаю сколько всего объектов находилось на этой границе за всё время Но мне кажется код не оптимальный, много проходов по одному и тому же словарю и массиву
0
|
||||||
| 27.07.2021, 16:43 | |
|
Ответы с готовыми решениями:
8
|
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|||||||
| 01.08.2021, 14:54 | |||||||
Сообщение было отмечено RSAX как решение
Решение
1
|
|||||||
| 01.08.2021, 15:59 | |
|
RSAX, Словари не упорядоченные множества. Поэтому бессмысленно говорить об первых 50 элементах словаря. Условие не коректное. В словаре не записи а элементы. Словарь не упорядочен. Если Вам нужно расположить элементы словаря, что бы они были упорядочены по ключу? Тогда нужно преобразовать словарь в список пар, где список с помощью lambda упорядочен по первым элементам в парах, то есть по ключам словаря. Тогда имеет смысл говорить о первых 50 элементах.
Добавлено через 2 минуты RSAX, Но глубоко вникать в Вашу задачу с координатами, я не стал, извините.
1
|
|
|
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
|
|
| 03.08.2021, 14:22 [ТС] | |
|
Viktorrus, Почему "бессмысленно говорить об первых 50 элементах словаря"? Получается если я циклом добавляю элементы в словарь, и принтую этот самый словарь, то он будет выводить элементы словаря всегда в разном порядке?
0
|
|
|
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
|
||
| 03.08.2021, 20:49 | ||
|
Словарь — неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение». но начиная с версии питона 3.6 вроде уже как упорядоченны но я бы на это сильно не надеялся
0
|
||
| 03.08.2021, 21:38 | ||||||||||||||||
|
RSAX, В предыдущих версиях питона это действительно было так. Вы можете прочитать это у Лутца. В последних же версиях питона разработчики сделали так, что элементы словаря стали сохранять свою позицию, однако при этом словарь не является последовательностью, в которой мы можем обращаться к элементам по индексу (положению в последовательности). Для чего это сделано я не знаю, но видимо удобно в каких то случаях (например как в Вашем).
![]()
Словари с одинаковыми элементами, инициированные для разных элементов, это разные объекты в оперативной памяти, но они являются равными друг другу. Нужно запомнить эту новую особенность словарей. Сохраню это в своей БД. Кто изучает по Лутцу, учтите это. ![]() RSAX, Так что я снимаю свое замечание, так как я работаю с питоном 3.8, где словари сохраняют позиции своих элементов. Спасибо, что благодаря Вам я обратил на это внимание. Добавлено через 2 минуты Semen-Semenich, уточнил, с каких версий питона это произошло. Добавлено через 15 минут RSAX, Я кажется понял для чего это сделано. Цитата (не помню, от куда): "Однако в последних версиях Python словари являются итерируемыми объектами с итератором, который автоматически возвращает по одному ключу за раз в контексте итерации" Видимо именно для этого сделано сохранение порядка в словарях. Добавлено через 26 минут RSAX, Возникает вопрос, а в чем же тогда проявляется неупорядоченность словарей? В том, что при размещении элементов словаря в разных порядках, мы получаем равные словари.
1
|
||||||||||||||||
|
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
|
|
| 03.08.2021, 22:35 | |
|
0
|
|
|
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
|
|
| 06.08.2021, 11:51 [ТС] | |
|
Viktorrus, Спасибо за объяснения, а то тоже работаю с 3.8 начал проверять и не понял как это словарь не последовательность, не знал что в старых версиях было по другому
последний пример и правда хорошо иллюстрирует вопрос
0
|
|
| 06.08.2021, 11:51 | |
|
Помогаю со студенческими работами здесь
9
Удалить из каждой строки файла первые K символов (если длина строки меньше K, то удалить из нее все символы) Оператор Merge. Объединить только первые 100 записей Заменить первые строчные буквы на заглавные в каждом слове, длина которого больше выбранно Если длина строки больше 10 - оставить первые 6 символов, иначе дополнить строку символами 'о' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|