#!/usr/bin/env python
# -*- coding: utf-8 -*-
def unilist(ll):
"""
功能:用递归方法删除多层列表中重复元素
"""
result = [] for i in ll:
if isinstance(i, list):
if unilist(i) not in result:
result.append(unilist(i))
else:
if i not in result:
result.append(i)
return result
def flatten(ll):
"""
功能:用递归方法展开多层列表,以生成器方式输出
"""
if isinstance(ll, list):
for i in ll:
for element in flatten(i):
yield element
else:
yield ll
testcase= ['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B']
print unilist(testcase)
print list(flatten(testcase))