オブジェクトの文字列表現をリスト内の各オブジェクトと比較する簡単な方法はありますか?
以下のサンプルコード(Python 2.7)は意図したとおりに機能しますが、Pythonでこれを行うにはもっと良い方法があると思います!
class url(object):
def __init__(self, address):
self.address = address
def __str__(self):
return self.address
list_of_urls = [url('http://www.example.foo'), url('http://www.example.bar')]
test_url = url('http://www.example.foobar')
test_url_listed = False
for link in list_of_urls:
if str(test_url) == str(link):
test_url_listed = True
if not test_url_listed:
list_of_urls.append(test_url)
構造を以下に近づけることは可能ですか?
if test_url not in list_of_urls:
list_of_urls.append(test_url)
(現状では、オブジェクトが表す文字列ではなくオブジェクトを比較するため、これは失敗します。)