Python删除多层列表中的重复元素以及展开多层列表元素

我这里直接写了一个函数,采用递归,然后删除重复的元素,话不多说上代码:

a = ["abc",["abc",1,[123,"abc"]],123]

def shanchu(list1):
    #这个函数的功能是删除多层列表中的重复元素
    result = []
    for i in list1:
        if isinstance(i,list):
            shanchu(i)
        else:
            if i not in result:
                result.append(i)
    return result

print(shanchu(a))

然后贴一个运行效果图:
在这里插入图片描述
展开多层列表元素函数及输出:

a = ["abc",["abc",1,[123,"abc"]],123]

def zhankai(list1):
    if isinstance(list1,list):
        for i in list1:
            for element in zhankai(i):
                yield element
    else:
        yield list1
print(list(zhankai(a)))

展开结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43635067/article/details/128915379