Size: a a a

2019 September 25

RB

Roman Bolkhovitin in rannts
А это реально задача такая или делать нехер?
источник

💭П

💭 Руслан Прохоров in rannts
Pryanik
те чтобы элемента между кек и лол не было
думал это трабла None, а видать просто как-то по-другому обходить надо 🤔
черствый, у тебя в листе, тупл......
источник

💭П

💭 Руслан Прохоров in rannts
т.е. у тебя в нутри объекта еще один объект ))))
источник

💭П

💭 Руслан Прохоров in rannts
я бы сделал рекурсивный метод для того чтобы распаковать все объекты в один список и потом бы уже с ним работал
источник

RB

Roman Bolkhovitin in rannts
В питоне и рекурсивный? А глубина рекурсии по умолчанию чем ограничена? Тысячей?
источник

P

Pryanik in rannts
Roman Bolkhovitin
А это реально задача такая или делать нехер?
ну вообще это надо было, но придумал как сделать без этого
чисто для интереса ща
источник

💭П

💭 Руслан Прохоров in rannts
Roman Bolkhovitin
В питоне и рекурсивный? А глубина рекурсии по умолчанию чем ограничена? Тысячей?
выход по простому типу данных.
источник

P

Pryanik in rannts
💭 Руслан Прохоров
т.е. у тебя в нутри объекта еще один объект ))))
да)))
и вот можно ли сделать так, чтобы внутрь всего этого заходил 🤔
источник

💭П

💭 Руслан Прохоров in rannts
или я не вижу проблемы?
источник

P

Pryanik in rannts
💭 Руслан Прохоров
я бы сделал рекурсивный метод для того чтобы распаковать все объекты в один список и потом бы уже с ним работал
да я хотел бы сохранить все объекты, но чтобы везде пустые потер 🤔
это не надо, но чисто для интереса вдруг кто знает короткий путь 🤔
источник

💭П

💭 Руслан Прохоров in rannts
Roman Bolkhovitin
В питоне и рекурсивный? А глубина рекурсии по умолчанию чем ограничена? Тысячей?
мне стала интересно, прям...
источник

💭П

💭 Руслан Прохоров in rannts
def parse_type(data: any, result: list):
   res = []
   # print(f"Current data: {data}")
   if isinstance(data, (int, float, str)):
       result.append(data)
       return

   for element in data:
       # print(f"Current element: {element}")
       if isinstance(element, (int, float, str)):
           result.append(element)
       else:
           parse_type(element, result)


c = [("lol", [], ['kek']), 'kok', ('glist', ['glog', ('tron', 'most'), []])]
d = []
parse_type(c, d)
print(d)

результат:
['lol', 'kek', 'kok', 'glist', 'glog', 'tron', 'most']

Как это исправить на правильный вариант (
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
💭 Руслан Прохоров
def parse_type(data: any, result: list):
   res = []
   # print(f"Current data: {data}")
   if isinstance(data, (int, float, str)):
       result.append(data)
       return

   for element in data:
       # print(f"Current element: {element}")
       if isinstance(element, (int, float, str)):
           result.append(element)
       else:
           parse_type(element, result)


c = [("lol", [], ['kek']), 'kok', ('glist', ['glog', ('tron', 'most'), []])]
d = []
parse_type(c, d)
print(d)

результат:
['lol', 'kek', 'kok', 'glist', 'glog', 'tron', 'most']

Как это исправить на правильный вариант (
У тебя же parse_type ничего не возвращает, зачем там вот это
res.append(parse_type(element, result))
?
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Лучше не прибегать к модификаци входящего аргумента, особенно если у тебя рекурсия
источник

💭П

💭 Руслан Прохоров in rannts
Kirill (Cykooz) Kuzminykh
У тебя же parse_type ничего не возвращает, зачем там вот это
res.append(parse_type(element, result))
?
Да косяк.
источник

💭П

💭 Руслан Прохоров in rannts
Но всеравно не правильно как это выглядит (
источник

💭П

💭 Руслан Прохоров in rannts
Kirill (Cykooz) Kuzminykh
Лучше не прибегать к модификаци входящего аргумента, особенно если у тебя рекурсия
вот, а как сделать правильно ни как не могу понять (
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Возвращать результат через return
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Ещё можно сделать генератор, особенно если у тебя третий питон, в котором можно делать вот так
yield from parse_type(element)
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Генератором будет даже проще наверное, и не придётся списки склеивать
источник