擅长:python、mysql、java
<p>您可以定义从<code>frozenset</code>继承的类,如:</p>
<pre class="lang-py prettyprint-override"><code>class myFrozen(frozenset):
def __repr__(self):
return set(self).__repr__()
def __str__(self):
return set(self).__str__()
t = [[], [1, 2], [5], [1, 2, 5], [1, 2, 3, 4], [1, 2, 3, 6]]
t1 = set(myFrozen(i) for i in t)
print(t1)
</code></pre>
<p>输出:</p>
<pre class="lang-py prettyprint-override"><code>{{1, 2}, {1, 2, 5}, {1, 2, 3, 4}, set(), {1, 2, 3, 6}, {5}}
</code></pre>
<p>请注意,在本例中,对于<code>__repr__()</code>和<code>__str__()</code>函数,我只使用了<code>set</code>类中的默认函数。如果不希望显示空集合的<code>set()</code>,可以在打印时更改函数。例如:</p>
<pre class="lang-py prettyprint-override"><code>class myFrozen(frozenset):
def __repr__(self):
return '{' + ",".join(str(x) for x in self) + '}'
def __str__(self):
return self.__repr__()
t = [[], [1, 2], [5], [1, 2, 5], [1, 2, 3, 4], [1, 2, 3, 6]]
t1 = set(myFrozen(i) for i in t)
print(t1)
# {{1,2}, {1,2,5}, {1,2,3,4}, {}, {1,2,3,6}, {5}}
</code></pre>