zoukankan      html  css  js  c++  java
  • Python-对字典进行排序

    案例:

           某班英语成绩以字典的形式存储为:

                  {‘lili’:78, ‘jin’:50, ‘liming’: 30, ......}

       依据成绩高低,进行学生成绩排名

    如何对字典排序?

      方法1:

    #!/usr/bin/python3
    
    from random import randint
    
    
    def sort_dict(data):
        # 获得字典的key
        keys = data.keys()
        
        # 获得字典的value
        valus = data.values()
        
        # 按(value,keys)进行zip拼接
        data_items = zip(valus, keys)
        
        # 按value进行排序,依据zip函数值的先后顺序,reverse表示列表是否翻转
        return sorted(data_items, reverse=True)
    
    
    if __name__ == '__main__':
        # 生成abcdefg学生对应的分数
        data = {k: randint(0, 100) for k in 'abcdefg'}
        
        # 获取排名
        result = sort_dict(data)
        print(result)

      方法2:

             按key排序

    #!/usr/bin/python3
    
    from random import randint
    
    
    def sort_dict(data):
        print(data.items())
        # 按key进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的key值
        return sorted(data.items(), key=lambda x: x[0], reverse=True)
    
    if __name__ == '__main__':
        # 生成abcdefg各学生对应的分数
        data = {k: randint(0, 100) for k in 'abcdefg'}
        
        # 获取排名
        result = sort_dict(data)
        print(result)

      按value排序

    #!/usr/bin/python3
    
    from random import randint
    
    
    def sort_dict(data):
        print(data.items())
        # 按value进行排序,reverse 表示列表是否翻转,x[0] 取的是data.items()中对应字典的value值
        return sorted(data.items(), value=lambda x: x[1], reverse=True)
    
    if __name__ == '__main__':
        # 生成abcdefgg各学生对应的分数
        data = {k: randint(0, 100) for k in 'abcdefg'}
        
        # 获取排名
        result = sort_dict(data)
        print(result)

      先把字典变成列表中元组形式,然后通过sorted函数,lambda迭代每个列表值,x[0]指向字典key,x[1]指向value,reverse是否反转,默认从小到大

     

  • 相关阅读:
    使用UFW防火墙拦截特定IP地址
    利用iptables防止syn flood攻击
    DDOS攻击模拟复现
    服务器遭到SYN攻击怎么办?如何防御SYN攻击?
    iptables限制同一IP连接数
    TIME_WAIT和CLOSE_WAIT状态区别
    详解TIME_WAIT过多,引起的请求502的问题。
    TIME_WAIT太多解决思路和方法
    黑客是如何攻击 WebSockets 和 Socket.io的
    免费CDN加速CloudFlare申请教程及使用 提供免费加速和防DDOS攻击
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7236786.html
Copyright © 2011-2022 走看看