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

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

04.09.2020, 11:58. Показов 6606. Ответов 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
38209 / 21142 / 4312
Регистрация: 12.02.2012
Сообщений: 34,755
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос. Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех. А широколиственный лес тоже имеет самую крутую биомассу. То почему не возникло их симбиоза? Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru