按照字典的值进行排序

按照字典值的大小对字典进行排序

1. 利用zip函数将key值和value值位置进行颠倒,再使用sorted进行排序

例如:


1

2

3

4

5

6

7

8

from random import  randint

d= {k:randint(0,20for in ‘abcdefg‘}

#{‘f‘: 10, ‘g‘: 16, ‘a‘: 18, ‘c‘: 12, ‘e‘: 16, ‘d‘: 7, ‘b‘: 16}

= list(zip(d.values(),d.keys()))

# zip函数就是将输入的序列重新组合成每个元素都是元组的列表,其中每个元素由输入序列相同位置的元素组成

#[(10, ‘f‘), (16, ‘g‘), (18, ‘a‘), (12, ‘c‘), (16, ‘e‘), (7, ‘d‘), (16, ‘b‘)]

print(sorted(zip(d.values(),d.keys())))

#[(7, ‘d‘), (10, ‘f‘), (12, ‘c‘), (16, ‘b‘), (16, ‘e‘), (16, ‘g‘), (18, ‘a‘)]

2.利用匿名函数进行排序


1

2

print(sorted(d.items(),key = lambda k : k[1]))

#[(‘d‘, 7), (‘f‘, 10), (‘c‘, 12), (‘g‘, 16), (‘e‘, 16), (‘b‘, 16), (‘a‘, 18)]

3. 使用operator.itemgetter函数


1

2

3

import operator

print(sorted(d.items(), key=operator.itemgetter(1)))

#[(‘d‘, 7), (‘f‘, 10), (‘c‘, 12), (‘g‘, 16), (‘e‘, 16), (‘b‘, 16), (‘a‘, 18)]

时间: 2024-10-11 13:53:55

按照字典的值进行排序的相关文章

Python - 字典按值(value)排序

字典安值排序是一个伪命题. 字典本身是不能被排序的, 已经按照关键字(key)排序, 但是列表(list)和元组(tuple)可以排序, 所以字典需要转换列表后排序. 如 import operator x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} sorted_x = sorted(x.items(), key=operator.itemgetter(1)) 则是转换列表后的排序, dict(sorted_x) == x, 列表转换字典. 代码 # -*- coding

python根据字典的值进行排序:

有一个列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}], 他们的值是不一样的, 现在要根据值进行排序: 思路:对于值排序,首先把字典中的值取出来, 把使这个值所在的字典和比它小的换位置这样就可以根据值进行排序 根据不同的键进行排序也是一样的. 具体代码实现 1 # 定义方法取出字典中的值 2 def get_val(_dict): 3 val

列表中嵌套字典,根据字典的值排序

格式:数据类型为列表,列表元素为字典.由字典组织的列表形式. 分析:可以将列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可 现在有一个列表,根据每个字典的值进行排序. dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack&quo

按字典的值对字典进行排序

有时有一种需要,求要按字典的值对字典值进行排序: 下面有两种方法 #!/usr/bin/env python #coding:utf-8 #@Author:Andy from random import randint # generate a random dict dict1 = {x :randint(1, 100) for x in "abczyx"} print(dict1) #method 1 # use built in function sorted ,zip dict

如何对字典按键值大小进行排序

有些时候,我们需要对字典按键值大小进行排序.比如以下情况:一个字典,包含的内容为 国家:人口数.{'Indonesia' : '239870000', 'Malaysia' : '28401000'}注意字典的键值为字符串'239870000',不能直接进行大小排序.我们需要将它转换成数字. 下面做一个案例.已有一个世界各国从1960年到2010年的人口统计.我们需要将2010年各国人口提取出来按从大到小排序. 参考代码: '''导入一个人口统计文本文件'''import jsonfilenam

python练习:字典value值排序,key值排序

#字典value值排序,key值排序 from random import * dict1 = {x:randint(5,12) for x in "aijwt"} dict2 = {randint(5,12):y for y in "aibjwte"} print ('dict1:',dict1) print ('dict2:',dict2) print ("将字典按value倒序显示,办法(collections的Counter):") fr

C# 键值对排序

static void Main(string[] args) { SortedList sl = new SortedList(); sl.Add("001", "Zara Ali"); sl.Add("002", "Abida Rehman"); sl.Add("003", "Joe Holzner"); sl.Add("004", "Mausam Be

Python 字典 列表 嵌套 复杂排序大全

https://blog.csdn.net/ray_up/article/details/42084863 一: 字典排序 解析: 使用sorted 方法, 排序后的结果为一个元组. 可以字符串排序(那数字肯定更没问题了!) 1:  按照键值(value)排序 a = {'a': 'China', 'c': 'USA', 'b': 'Russia', 'd': 'Canada'}b = sorted(a.items(), key=lambda x: x[1], reverse=True)结果:[

PHP usort 使用用户自定义的比较函数对数组中的值进行排序

From: http://www.php100.com/cover/php/2395.html usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 说明 bool usort ( array &$array , callback $cmp_function ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. 比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分