Форум сайта python.su
def clearlist(mass,out=[]): for qwe in mass: if (type(qwe)==list): out.append(clearlist(qwe)) else: if not(qwe in out): out.append(qwe) return(out)
w=[1,2,3,4,1,1,23,12,12,21] w=clearlist(w)
[1, 2, 3, 4, 23, 12, 21]
w=[1,2,3,4,1,1,23,12,12,21,['a','a','s']] [1, 2, 3, 4, 23, 12, 21, 'a', 's', [...]]
Отредактировано Timafei.sosnin (Окт. 8, 2017 13:04:46)
Офлайн
Timafei.sosnin
Передавать список дефолтным параметром - плохая идея. Это может работать не так, как вы ожидаете. Дело в том, что объект функции создается один раз, и дефолтное значение устанавливается один раз, а дальше используется указатель на одно и то же значение
Попробуйте запустить
def foo(l=[]): l.append(1) print(l) foo(l=[7]) foo() foo() foo()
Офлайн
FishHook
С твоего ответа не чего честно говоря не понял кроме того что:
FishHook
Передавать список дефолтным параметром - плохая идея
def clearlist(mass,out=None): if (out==None): out=[] for qwe in mass: if (type(qwe)==list): out.append(clearlist(qwe)) else: if not(qwe in out): out.append(qwe)
Офлайн