Форум сайта python.su
0
У меня есть объекты созадные таким образом
Proxy = namedtuple('Proxy', 'proto, host, port, username, password')
Офлайн
0
Решение
class Proxy(object): def __init__(self, proto, host, port, username, password): self.proto = proto self.host = host self.port = port self.username = username self.password = password def __eq__(self, other): return self.host == other.host def __hash__(self): return hash(self.host) proxies = set(proxies)
Отредактировано mirak (Фев. 28, 2016 00:27:01)
Офлайн
857
>>> 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')] >>>
Отредактировано py.user.next (Фев. 28, 2016 02:20:55)
Офлайн