Python Forum
hope to know a rank, if it has. if not, just show 0.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
hope to know a rank, if it has. if not, just show 0.
#6
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 _ Wall
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 >>>
Reply


Messages In This Thread
RE: hope to know a rank, if it has. if not, just show 0. - by tyyi - Jul-10-2018, 10:34 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  PIL Image im.show() no show! Pedroski55 2 978 Sep-12-2022, 10:19 PM
Last Post: Pedroski55
  PIL Image im.show() no show! Pedroski55 6 4,954 Feb-08-2022, 06:32 AM
Last Post: Pedroski55
  Rank word frequent in a list standenman 1 2,834 Nov-07-2018, 09:24 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020