Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 02.07.2025
Сообщений: 14

Deque и физическая память

19.05.2026, 09:47. Показов 2260. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, вопрос начинающего: в случае, когда идёт заполнение deque-очереди и если счетчик адреса натыкается на НЕпустую ячейку, перепрыгнет ли он в поисках свободного места или сразу выдаст ошибку переполнения памяти?
Вопрос вызван поиском возможности быстрой работы связного списка в условиях дефицита свободной памяти, а ряд "руководств" утверждает, будто deque-очередь (помимо моего ожидания) работает в условиях непрерывного заполнения.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2026, 09:47
Ответы с готовыми решениями:

сортировка deque
Здравствуйте, форумчане. Выполнял задание и вот стало ясно, что надо отсортировать деку(дали, как...

Пример с атрибутом класса и deque
смотрел на ютубе лекцию С.Лебедева (из CSC) по классам Python (ч.1). не понял вот этот пример....

Реализовать класс Deque
Добрый день! Возникла проблема с решением задачи, описание которой привожу ниже. Реализуйте...

27
0 / 0 / 0
Регистрация: 02.07.2025
Сообщений: 14
10.06.2026, 18:29  [ТС]
Студворк — интернет-сервис помощи студентам
Похоже, я опять невнятно сформулировал свою проблему. Проектом будет набор "кубиков", по количеству параметров задачи (пока просматривается порядка 30 параметров), размер каждого из которых (!) по "горизонтали" начнётся - на стадии отладки - со 100х100, а в рабочем режиме - не менее 10_000х10_000. В каждом такте работы столбики (состоящие из "этажей" одного формата) будут менять начинку, а по окончании такта - высоту. В процессе отладки выбирается характерный размер всех кубиков и их количество, которые - помимо формата "этажей" - останутся константами задачи. А каждый кубик (а не столбик) представляется единой параметризуемой структурой.
Осознаю, что всё сказанное - не столько "формулировка задачи", сколько протокол о намерениях. Поэтому я с благодарностью принимаю Ваши замечания и предлагаю дать мне возможность "созреть", покувыркавшись в конкретике.
До продолжения!
0
Эксперт Python
 Аватар для dondublon
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 6
10.06.2026, 19:22
ну, запостите формулировку, может что и решим. ИИ тоже грамотная формулировка нужна.
1
0 / 0 / 0
Регистрация: 02.07.2025
Сообщений: 14
19.06.2026, 14:35  [ТС]
dondublon, вопрос не конкретно по deque-методу, а - по ходу его использования.
Зазипованы два фрагмента стартового заполнения memmap-массива пустыми очередями (можно и - списками, не суть).
Первый фрагмент заполняется обходом массива по индексам, второй - поэлементным обходом.
В остальном - "близнецы-братья" (ц
Однако, если первый фрагмент - обнаруживает факт заполнения, то второй - None.
Не могли бы Вы объяснить разницу ?

фрагм 1.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import numpy as np
import os
import gc
from collections import deque
 
import time
 
N = 100
razmer = (6, N, N)
Nn = razmer[0] * razmer[1] * razmer[2]
 
 
file_path_mmap = 'model.dat'            # имя файла
mmap_array = np.memmap(file_path_mmap, dtype=object, mode='w+', shape=razmer)
 
k, i, j = 3, 50, 75
node_connections = mmap_array[k, i, j]
print(f"Исходное состояние узла [{k}, {i}, {j}]: {node_connections}")
 
dq = deque([])
 
for k in range(razmer[0]):
    for i in range(razmer[1]):
        for j in range(razmer[2]):
            mmap_array[k, i, j] = dq    #   !!!
 
#for x in np.ndenumerate(mmap_array):
#    x=dq
 
k, i, j = 3, 50, 75
node_connections = mmap_array[k, i, j]
print(f"Итоговое состояние узла [{k}, {i}, {j}]: {node_connections}")


фрагм 2.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import numpy as np
import os
import gc
from collections import deque
 
import time
 
N = 100
razmer = (6, N, N)
Nn = razmer[0] * razmer[1] * razmer[2]
 
 
file_path_mmap = 'model.dat'            # имя файла
mmap_array = np.memmap(file_path_mmap, dtype=object, mode='w+', shape=razmer)
 
k, i, j = 3, 50, 75
node_connections = mmap_array[k, i, j]
print(f"Исходное состояние узла [{k}, {i}, {j}]: {node_connections}")
 
dq = deque([])
 
#for k in range(razmer[0]):
#    for i in range(razmer[1]):
#        for j in range(razmer[2]):
#            mmap_array[k, i, j] = dq
 
for x in np.ndenumerate(mmap_array):
    x=dq                                #   !!!
 
k, i, j = 3, 50, 75
node_connections = mmap_array[k, i, j]
print(f"Итоговое состояние узла [{k}, {i}, {j}]: {node_connections}")
0
Эксперт Python
 Аватар для dondublon
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 6
19.06.2026, 15:07
Ой не, я пас. Это дебажить надо.
0
0 / 0 / 0
Регистрация: 02.07.2025
Сообщений: 14
24.06.2026, 13:07  [ТС]
Коллеги, же не ма шпа сис жур!
Создал скрипт, замысленный как:
- заполнение массива 6х5х5 пустыми очередями;
- хранение массива в виде файла (в корневой папке питон-проектов);
- заполнение первого - [0, 0, 0] - элемента массива строчкой "единичек"; и
- сохранение внесённых изменений.

Почему при этом изменения
- вносятся ВО ВСЕ элементы массива, и
- НИКАК не отображаются в соответствующем файле?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np
import os
import gc
from collections import deque
 
import time
 
N = 5
razmer = (6, N, N)
Nn = razmer[0] * razmer[1] * razmer[2]
 
 
file_path_mmap = 'model.dat'            # имя файла
mmap_array = np.memmap(file_path_mmap, dtype=object, mode='w+', shape=razmer)
 
 
dq = deque([])
 
for k in range(razmer[0]):
    for i in range(razmer[1]):
        for j in range(razmer[2]):
            mmap_array[k, i, j] = dq
 
 
k, i, j = 0, 0, 0
print(f"Cостояние узла [{k}, {i}, {j}]: {mmap_array[k, i, j]}")
 
mmap_array[k, i, j].append('11111111111111111111111111')
 
mmap_array.flush()
 
print(f"Cостояние узла [{k}, {i}, {j}]: {mmap_array[k, i, j]}")
 
print(mmap_array)
0
Эксперт Python
 Аватар для dondublon
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 6
24.06.2026, 13:18
Лучший ответ Сообщение было отмечено yarunichev как решение

Решение

у вас там один файл, зачем зиповать?
Python
1
2
3
4
5
6
dq = deque([])
 
for k in range(razmer[0]):
    for i in range(razmer[1]):
        for j in range(razmer[2]):
            mmap_array[k, i, j] = dq
ясен пень, у вас там везде один и тот же объект.
Вообще-то я вам говорил, не надо в numpy хранить питоновские объекты. Дело даже не в том, что тут этот баг вылез. Вообще не надо, он не для этого.
1
0 / 0 / 0
Регистрация: 02.07.2025
Сообщений: 14
24.06.2026, 14:09  [ТС]
dondublon, зиповал - потому что файлы ".py" не входят в перечень разрешённых типов

Что ж... "А пред нею - разбитое корыто." (не моё)
0
Эксперт Python
 Аватар для dondublon
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 6
24.06.2026, 15:30
Цитата Сообщение от yarunichev Посмотреть сообщение
dondublon, зиповал - потому что файлы ".py" не входят в перечень разрешённых типов
Обычно прямо в тексте поста пишут код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2026, 15:30

Физический движок с вращением
Здравствуйте. К сожалению, большинство туториалов содержит движки без вращения, а там где оно...

Физически не удаляется изображение, связанное с моделью
Всем привет! -Есть две модели: Good и GoodImage. -GoodImage ссылается на Good посредством...

Биоритмы. Вывести значение биоритмов физического, эмоционального, интеллектуального, округленные до сотых
Существует предположение о существовании трех биологических ритмов человека: физического,...

Физические термины
Вы хотите помочь своим друзьям научиться разбираться в физических понятиях и не путать физические...

Физическое моделирование и python
При написании программы выдаёт ошибку. Ниже приведён текст программы: #Заряд в поле k=9e9 s=0.08...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru