如何按受欢迎程度对网站排序?Python脚本实现求助
按网站访问量排序的解决方案
你现在的脚本已经能计算各网站的访问量,要按访问量(受欢迎程度)排序,可以用Python的sorted()函数处理存储访问量的字典Walk_Number。以下是修改后的完整脚本(注释已翻译成中文):
import random # 创建超链接字典 Hypertext = {} # 创建存储访问次数的字典 Walk_Number = {} # 总访问次数变量 Total_Walk = 0 # 网站列表 Websites = ["A","B","C","D","E","F"] # 超链接配置 # 字典的键是网站名称,值是该网站指向的其他网站列表 Hypertext["A"] = ["B","C","E"] Hypertext["B"] = ["F"] Hypertext["C"] = ["A","E"] Hypertext["D"] = ["B","C"] Hypertext["E"] = ["A","B","C","D","F"] Hypertext["F"] = ["E"] print(Hypertext) # 初始化各网站访问次数为0.0 for site in Websites: Walk_Number[site] = 0.0 i = 0 while i < 1000: x = random.choice(Websites) while random.random() < 0.85: Walk_Number[x] = Walk_Number[x] + 1 Total_Walk = Total_Walk + 1 x = random.choice(Hypertext[x]) i = i + 1 print("原始访问量数据:") print(Walk_Number) print(f"总访问次数:{Total_Walk}") # 按访问量从高到低排序网站 sorted_sites = sorted(Walk_Number.items(), key=lambda item: item[1], reverse=True) print("\n按访问量排序的网站(从高到低):") for site, count in sorted_sites: print(f"{site}: {count}")
关键说明:
Walk_Number.items()会返回字典的所有键值对(比如('A', 120.0)这样的元组)key=lambda item: item[1]指定排序依据是每个元组的第二个元素(也就是访问量数值)reverse=True让结果按降序排列(如果要升序去掉这个参数即可)
内容的提问来源于stack exchange,提问作者Yamighawara Kazeru
相关产品推荐
相关产品推荐

