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

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

04.09.2020, 11:58. Показов 6728. Ответов 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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,769
Записей в блоге: 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
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru