擅长:python、mysql、java
<p>正如错误消息所暗示的,集合不能嵌套。但是,可以创建集合包装器来创建嵌套集合的表示:</p>
<pre><code>class SetWrapper:
def __init__(self, *args):
self.v = set() if not args else args
def __repr__(self):
return "{}({})".format(self.__class__.__name__, str(self))
def __str__(self):
return '{'+', '.join(str(i) for i in self.v)+'}'
def wrap_set(f):
def wrapper():
return SetWrapper(*[i if type(i) not in [list, set] else SetWrapper(*i) for i in f()])
return wrapper
@wrap_set
def get_list():
return [[1,2],[4,5,6],[9],[]]
print(get_list())
</code></pre>
<p>输出:</p>
<pre><code>SetWrapper({{1, 2}, {4, 5, 6}, {9}, {}})
</code></pre>