zoukankan      html  css  js  c++  java
  • python 字典 分别根据值或键进行排序的方法

    最近经常遇到根据字母出现的频率进行排序的题目

    我的思路一般是借用字典统计字母出现的频率

    然后对字典按照值进行排序

    但是每次按照值进行排序时 

    都会忘记排序方法

    在此记录一下,以加深印象 

    字典原始值如下:

    dic = {'Emily': 25, 'Dory':3, 'Yilia':2}

     先记录根据值进行排序的方法,代码如下:

    >>> dic_sort_by_values = sorted(dic.items(), key = lambda x: x[1])
    >>> print(dic_sort_by_values)
    [('Yilia', 2), ('Dory', 3), ('Emily', 25)]

    逆序代码如下,需要增加一个 reverse= True的参数 

    >>> dic_sort_by_values = sorted(dic.items(), key = lambda x: x[1], reverse = True)
    >>> print(dic_sort_by_values)
    [('Emily', 25), ('Dory', 3), ('Yilia', 2)]

    取前n个值代码如下,需要借用循环及计数器:

    >>> required_count = 2
    >>> res = []
    >>> count = 0
    >>> for k ,v in dic_sort_by_values:
        count += 1
        if count > required_count:
            break
        else:
            print('{}:{}'.format(k, v))
    
            
    Emily:25
    Dory:3

    根据键值进行排序的代码如下,两种排序方式返回的数据不同,一种仅返回键组成的列表,另外一种则返回由元组(k,v)组成的列表:

    >>> dic_sort_by_keys = sorted(dic.keys())
    >>> print(dic_sort_by_keys)
    ['Dory', 'Emily', 'Yilia']
    >>> dic_sort_by_keys = sorted(dic.items(), key = lambda x: x[0])
    >>> print(dic_sort_by_keys)
    [('Dory', 3), ('Emily', 25), ('Yilia', 2)]

    逆序代码如下,需要增加一个 reverse= True的参数 

    >>> dic_sort_by_keys = sorted(dic.items(), key = lambda x: x[0], reverse = True)
    >>> print(dic_sort_by_keys)
    [('Yilia', 2), ('Emily', 25), ('Dory', 3)]
  • 相关阅读:
    conda安装使用
    数据库删除后台代码
    表格显示数据库(html和php混编)
    唯一用户名jquery和PHP代码
    //阿贾克斯提交数据库
    //向数据库添加数据(form表单提交)
    //conn数据库配置
    Css 变量
    input标签让光标不出现
    Es6Class
  • 原文地址:https://www.cnblogs.com/QianyuQian/p/13834393.html
Copyright © 2011-2022 走看看