擅长:python、mysql、java
<p>列表对象没有包含对象的属性。请考虑以下绝对有效的python列表:</p>
^{1}$
<p>告诉我为什么</p>
^{pr2}$
<p>应该有明确的行为。在</p>
<p>您要做的是使列表中的对象按其名称散列,然后用它们构建一个<code>set</code>。在</p>
<p><strong>EDIT</strong>:散列意味着您实现了<code>__hash__</code>函数,在本例中可能只是</p>
<pre><code>class Contact(object):
def __hash__(self):
return self.name.__hash__
</code></pre>
<p>另外,您应该定义一个<code>__eq__</code>函数(eq like equality),以便python可以检查两个触点是否相等:</p>
<pre><code> def __eq__(self,other):
return self.name==other.name
</code></pre>
<p>一旦完成了这些,就可以使用<code>set</code>类型,它与<code>list</code>类型一样,但只允许一个“相等”对象。这对联系人列表很有意义!完成后,您只需创建一个虚拟接触对象并检查它是否在集合中。在</p>
<p>否则,您只需迭代所有这些:</p>
<pre><code>if any(text.address == cont.name for contact in listOfContacts):
</code></pre>
<p><strong>编辑</strong>:它只检查联系人的<code>any</code>是否具有与您的<code>text.address</code>相等的<code>name</code>属性。在</p>