My bad, fix line 36
from collections import OrderedDict data = """ t=A n=1 www.aaa.com t=A n=2 www.bbb.com t=A n=3 www.ccc.com t=B n=1 www.aaa.com t=B n=2 www.bbb.com t=B n=3 www.ddd.com t=C n=1 www.bbb.com t=C n=2 www.ddd.com t=C n=3 www.ccc.com t=D n=1 www.aaa.com t=D n=2 www.bbb.com t=D n=3 www.ccc.com t=D n=4 www.eee.com """ def process_data(data): ranks = OrderedDict() for line in data.split('\n'): line = line.strip() if line: line_data = line.split(' ') url = line_data[-1] group, rank = [item.split('=')[-1] for item in line_data[:-1]] ranks.setdefault(group, {})[url] = rank return ranks def get_ranks(url, ranks): return ((url_ranks.get(url, 0), group) for group, url_ranks in ranks.items()) if __name__ == '__main__': url = "www.ddd.com" all_ranks = process_data(data=data) for rank, group in get_ranks(url=url, ranks=all_ranks): print('The rank is {} in {} group'.format(rank, group))
Output:The rank is 0 in A group
The rank is 3 in B group
The rank is 2 in C group
The rank is 0 in D group
>>>
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs