>>> import collections
>>> import pprint
>>>
>>> pp = pprint.pprint
>>>
>>> Proxy = collections.namedtuple(
... 'Proxy', 'proto, host, port, username, password')
>>>
>>> lst = [Proxy(*'abcd1'),
... Proxy(*'abcd2'),
... Proxy(*'accd3'),
... Proxy(*'adcd4'),
... Proxy(*'adcd5')]
>>>
>>> pp(lst)
[Proxy(proto='a', host='b', port='c', username='d', password='1'),
Proxy(proto='a', host='b', port='c', username='d', password='2'),
Proxy(proto='a', host='c', port='c', username='d', password='3'),
Proxy(proto='a', host='d', port='c', username='d', password='4'),
Proxy(proto='a', host='d', port='c', username='d', password='5')]
>>>
>>> lst = list({t.host:t for t in lst}.values())
>>>
>>> pp(lst)
[Proxy(proto='a', host='d', port='c', username='d', password='5'),
Proxy(proto='a', host='c', port='c', username='d', password='3'),
Proxy(proto='a', host='b', port='c', username='d', password='2')]
>>>