Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
1

Особый итератор словаря. Медленный итератор

24.04.2015, 05:59. Показов 2037. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу разобраться, как написать итератор. У меня есть словарь, ключи это координаты, а значения это либо ноль, либо единичка (True и False. Как написать итератор, который будет возвращать все возможные комбинации из элементов словаря, причём такие, что нет трех подряд идущих по горизонтали, вертикали, диагонали клеток со значением True(В смысле координат). Я написал некое подобие, где я пербираю вообще все комбинации C из n по k с помощью itertools и отбрасываю лишние, однако это неиэффективно. Можно как-то на этапе поостроения отбрасывать лишние?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2015, 05:59
Ответы с готовыми решениями:

Итератор по словарю
Какие есть способы перебора элементов словаря(dict)? Нужен возврат итератора к первому элементу и...

Абстрактна фабрика и итератор
Нужно создать класс карты, чтобы представить игральную карту в пирамиде. Создать класс Колода для...

Регулярные выражения, итератор
str = 'sfsf23sodfsf23sdfhosdj98sljdnfls23' p = re.compile('\d+') z = p.finditer(str) print...

Итератор
Напишите итератор, реализующий функцию возврата последовательных чисел геометрической...

6
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
24.04.2015, 17:20 2
Почему именно словарь, а не список списков или вообще одномерный список? В каком диапазоне координаты? Комбинации - в смысле сочетания? Какое k, заранее известно?
0
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
26.04.2015, 12:53  [ТС] 3
Можно и список. Координаты в любом диапазоне потенциально (-inf, +inf), там только ограничения питона, поэтому и словарь, как бы если нет значения по такому-то ключу, значит не существует объекта по таким координатам. Какое к неизвестно. Поэтому лучше, чтобы итератор был ленивый, т.к. получу нужную комбинацию (не буду рассказывать подробности) мне нужно прервать итератор
0
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
26.04.2015, 13:58 4
Если памяти не жалко, то можно сохранять сочетания по k элементов и на их основе генерировать сочетания по k+1.
0
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
26.04.2015, 14:30  [ТС] 5
Можете помочь с реализацией?
0
Эксперт NIX
 Аватар для Marinero
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
26.04.2015, 15:53 6
Чтобы не было рядом лежащих итерировать надо через 2 [-k, -k] --> [-k, -k+2][-k+2, -k][-k+2, -k+2]
0
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
26.04.2015, 15:56  [ТС] 7
Т.Е. обычный перебор, только брать каждую третью?
0
26.04.2015, 15:56
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2015, 15:56
Помогаю со студенческими работами здесь

Создать Итератор
Есть код, необходимо разбить его на класс Iterator и Triangle. Не понимаю как сделать. from...

Итератор и последовательность
Чем отличается итератор от последовательности? Нужен грамотный ответ, впринципе я понимаю, но...

Создать итератор для класса
Нужна помощь. Дано задание: создать динамическую структуру очередь. Мне нужно осуществить...

Бесконечный итератор по нажатой кнопке (PyQt)
Есть кнопка from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *...

Как заставить итератор шагнуть назад?
Сразу говорю: реализация через индексы не пойдёт: придётся переписывать много строк кода. ...

Удвоить все значения в переменной через итератор
В переменной it хранится список натуральных чисел. Например, в переменную записали следующий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов. / / . . .
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
Исполнитель Черепаха в КуМир: как решать задачи
bytestream 27.01.2025
Исполнитель Черепаха в системе КуМир представляет собой мощный образовательный инструмент, который помогает освоить основы программирования через визуальное представление результатов выполнения. . .
КуМир: как решать задачи на массивы
bytestream 27.01.2025
Массивы представляют собой важнейшую структуру данных в программировании, и система КуМир предоставляет удобные инструменты для работы с ними. В контексте КуМир массив можно представить как. . .
[golang] 26. Remove Duplicates from Sorted Array
alhaos 27.01.2025
Необходимо удалить дубликаты из предоставленного целочисленного отсортированного по взрастанию слайса, нужно изменить значения в слайсе и вернуть количество элементов. / / . . .
КуМир, исполнитель Робот. Решение задач
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения программированию, которая была создана в Отделении информатики Российской Академии наук. Эта система разработана. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru