Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132

Как определить бесконечный список?

04.09.2020, 11:58. Показов 6604. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Есть такая ситуация: в результате работы кода, появляются бесконечно вложенные друг в друга списки (указывающие сами на себя). Например,

Python
1
2
bio  = [[]]
bio[0].append(bio[0])
На выходе имеем такую дрянь [[...]], с которой дальше работать невозможно. Вопрос: можно ли каким-либо образом определить, что список является бесконечным? Type показывает обычный <class 'list'>.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2020, 11:58
Ответы с готовыми решениями:

Бесконечный список
Помогите с задачей. Ума не приложу. Под именами х и у заданы списки Лиспа (a (b c) и (d e), соответственно. Нужно используя их, и не...

Бесконечный чередующийся список мороженого
data Sort = Vanil | Malina | Shokolad deriving Show data Ice = Ice Sort Ice | Waflja infinityIce :: Ice infinityIce = let list = map...

Опишите бесконечный список чисел [1,-1,1,-1,...]
А) опишите бесконечный список чисел Б) с помощью этого списка, списка и функции zipWith опишите бесконечный список Заранее спасибо)

22
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
05.09.2020, 20:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от dondublon Посмотреть сообщение
Нет. Просто добавляется ссылка на себя, занимаемая память не увеличивается.
Если бы питон не блокировал бы такое зацикливание, то мы получали бы все более усложняемую структуру списка
bio = [[[[[]]]]] которая бы занимала все больше и больше памяти компьютера.
Кстати о каких ссылках Вы говорите? Ссылки обычно хранятся в переменных. Какие переменные Вы имеете ввиду? Счетчик ссылок на объект в самом объекте не в счет. Он всегда соответствует наличию реальных ссылок. В данном случае мы имеем только одну переменную bio , которая имеет одну ссылку на объект-список, который в данном случае модифицируется разрастаясь в памяти.
Вы видимо путаете с рекурсией, где создаются временные вспомогательные переменные сохраняющие промежуточные состояния, и там количество ссылок действительно увеличивается.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38208 / 21141 / 4311
Регистрация: 12.02.2012
Сообщений: 34,754
Записей в блоге: 14
05.09.2020, 21:23
Как вариант. Поиск циклических участков в различных списках:

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
def chk_cycle(lst,tmp=[]):
    for a in lst:
        if type(a)==list:
            if id(a) in tmp:
                return True
            elif chk_cycle(a,tmp+[id(a)]):
                return True
    return False
 
# В нормальном списке    
print(chk_cycle([1,[2,3],[4,5]]))
==> False
 
# Делаем простой плохой список
bad1  = []
bad1.append(bad1)
 
print(chk_cycle(bad1))
==> True
 
# Делаем сложный плохой список
bad2 = []
bad2.append(bad2)
bad3=[1,[2,bad2],3,4]
 
print(chk_cycle(bad1))
==> True
 
# печать плохого списка
print(bad3)                
==> [1, [2, [[...]]], 3, 4]
0
Эксперт Python
 Аватар для dondublon
4661 / 2080 / 367
Регистрация: 17.03.2012
Сообщений: 10,201
Записей в блоге: 6
06.09.2020, 09:17
Цитата Сообщение от Viktorrus Посмотреть сообщение
сли бы питон не блокировал бы такое зацикливание, то мы получали бы все более усложняемую структуру списка
bio = [[[[[]]]]] которая бы занимала все больше и больше памяти компьютера.
Ну так мы и получаем такую структуру, но она не занимает больше и больше памяти. С чего бы её занимать-то? Новых объектов ведь нет.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Кстати о каких ссылках Вы говорите? Ссылки обычно хранятся в переменных. Какие переменные Вы имеете ввиду?
Ссылка на целый список в элементе списка. Ваш К. О.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2020, 09:17

Бесконечный список совершенных чисел
Здравствуйте! Помогите пожалуйста дополнить программу. Вот задание: Сгенерировать бесконечный список совершенных чисел. Пока что,...

Бесконечный список объектов класса?
В данный момент изучаю тему Классы и пробую практиковаться.:) И недавно возник вопрос: как сделать список объектов с количество заданным...

Бесконечный список съел один елемент
Доброго времени суток, Случилась вот такая нелепая проблема, когда я делал лабораторную работу. Односторонний список должен...

Бесконечный список чисел Пелля-Люка
а) Используя функцию iterate, написать функцию, которая строит бесконечный список чисел Пелля-Люка б) Написать функцию, которая читает...

Составить бесконечный список последовательностей биномиальных коэффициентов
Здравствуйте! Так вышло, что в сжатые сроки нужны решения некоторых задач. Решал бы сам, если бы не был занят проектом. Как уже поняли с...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru