擅长:python、mysql、java
<p>如果您的<code>dict</code>中的数据从未更改,并且您需要密钥,那么您应该选择使用<a href="https://docs.python.org/3/library/collections.html" rel="nofollow noreferrer">^{<cd2>}</a>s</p>
<p>您需要将嵌套的<code>list</code>转换为<code>tuple</code>,因为列表是不可散列的。然后,您可以将现有字典放入namedtuple(或直接创建它们)。在</p>
<pre><code>d1 = {
'test': 'baum',
'alter': 0,
'voegel': ('amsel')
}
d2 = {
'test': 'grosserbaum',
'alter': 3,
'voegel': ('meise')
}
from collections import namedtuple
Test = namedtuple("Test", "test alter voegel")
t1 = Test(**d1)
t2 = Test(**d2)
print(t1) # Test(test='baum', alter=0, voegel='amsel')
print(t2) # Test(test='grosserbaum', alter=3, voegel='meise')
print(set([t1, t2])) # {Test(test='grosserbaum', alter=3, voegel='meise'), Test(test='baum', alter=0, voegel='amsel')}
</code></pre>
<p>现在您可以将这些namedtuples保存在<code>set</code>中,这样集合将只包含唯一的项!另外,namedtuples使用的内存比dict少,因为它实现了<a href="https://stackoverflow.com/questions/472000/usage-of-slots">^{<cd6>}</a>。在</p>