Jul-10-2018, 10:34 AM
Thank you for your quick revised answer!
When I executed the first one, I got the error message, so I just removed ' from 36 line, not added _
I got the result I hope to see.
I have to study your code from now on.
really appreciated your answer one more!
It is my first question after subscribed in Python forum.
I got very good impression from YOU!
When I executed the first one, I got the error message, so I just removed ' from 36 line, not added _
I got the result I hope to see.
I have to study your code from now on.
really appreciated your answer one more!
It is my first question after subscribed in Python forum.
I got very good impression from YOU!
(Jul-10-2018, 10:25 AM)buran Wrote: 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 >>>