看到排序,就不禁想起python中的sort和sorted

sort是列表中的方法,用于对列表进行排序(改变的是原列表,不返回新列表)

用法: list.sort(key=None,reverse=True) ,参数中reverse默认是False,表示升序,如果设置成True就是降序(注意要首字母要大写)

sorted是Python的内建函数,用于对可迭代对象进行排序,返回一个新的迭代对象

用法:sorted(iterable,key=None,reverse=False),参数中iterable是迭代对象,key是用来比较的元素(比如字典可以选择按键或值进行排序),reverse默认False升序,可设置成True降序(注意要首字母要大写)

对列表进行排序既可以用sort也可以用sorted

from random import randint
# sort只能对列表使用,sorted用于所有可迭代对象
# randint是random模块下的一个函数,可以生成范围内的一个随机数
list = [randint(1,100) for i in range(10)]
print('列表排序前:',list ,'地址为:',id(list))
list1 = list.sort(reverse=True)
print('用sort降序排序后返回:',list1,'此时原始列表为:',list )
list2 = sorted(list,reverse=True)
print('用sorted降序排序后返回:',list2 ,'地址为:',id(list2))

用sort和sorted对列表进行排序

运行结果为:

可以看出用sort返回值是None,用sorted则会返回一个新的列表。如果不用保存原始列表的话,用sort方法节省空间、效率会高一些。

接下来用sorted对字典进行排序(sort只能用于对列表排序)

按键排序:

sorted(dict.items(),key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是根据键(key)排好序的元祖

sorted(dict,key=lambda dict:dict[0],reverse=False)返回的是列表,列表内是排好序的键(key)

sorted(dict.keys(),reverse=False)返回的是列表,列表内是排好序的键(key)

按值排序:

sorted(dict.items(),key=lambda dict:dict[1],reverse=False)返回的是列表,列表内是根据值(values)排好序的元祖

sorted(dict.values(),reverse=False)返回的是列表,列表内是排好序的值(values)

关于lambda匿名函数,可以看https://www.cnblogs.com/xiaocaiqa/p/12469583.html

如果需要返回一个字典,那么就要对返回的列表进行处理:

python中字典按键、值进行排序的更多相关文章

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

    有一个列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d&q ...

  2. python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  3. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  4. Python中字典和集合

    Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...

  5. PHP如何根据数组中的键值进行排序

    主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 <?php $array = array( array(), ...

  6. python中字典的陷阱

    把字典与列表组合,如 i=20 s=[]#定义一个空列表 b={'d':i}#定义一个字典 while i>0: i=i-1 b['d']=i#更新字典的值 s.append(b) print( ...

  7. python中字典排序

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  8. 浅谈python中字典append 到list 后值的改变问题

    看一个例子 ? 1 2 3 4 d={'test':1} d_test=d d_test['test']=2 print d 如果你在命令行实践的话,会发现你改动的是d_test ,但是d 也跟着改变 ...

  9. Python - 字典按值(value)排序

    字典安值排序是一个伪命题. 字典本身是不能被排序的, 已经依照关键字(key)排序, 可是列表(list)和元组(tuple)能够排序, 所以字典须要转换列表后排序. 如 import operato ...

随机推荐

  1. 把对象交给spring管理的3种方法及经典应用

    背景 先说一说什么叫把对象交给spring管理.它区别于把类交给spring管理.在spring里采用注解方式@Service.@Component这些,实际上管理的是类,把这些类交给spring来负 ...

  2. SQL 练习37

    检索至少选修两门课程的学生学号 SELECT Student.SId,Student.Sname,选课数 from Student, (SELECT sid,COUNT(cid) 选课数 from s ...

  3. java对xml节点属性的增删改查实现方法

    package vastsum; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import o ...

  4. NOIP 模拟 $25\; \rm string$

    题解 \(by\;zj\varphi\) 考虑对于母串的每个字符,它在匹配串中有多少前缀,多少后缀. 设 \(f_i\) 表示 \(i\) 位置匹配上的前缀,\(g_i\) 为后缀,那么答案为 \(\ ...

  5. 【转】new和malloc的区别

    1. 申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存. 自由存储区是C++基于new操作符的一个抽象概念,凡是通过n ...

  6. 异步编程之APM

    一.APM概述 APM即异步编程模型的简写(Asynchronous Programming Model),我们平时经常会遇到类似BeginXXX和EndXXX的方法,我们在使用这些方法的时候,其实就 ...

  7. NameNode&Secondary NameNode 工作机制

    NameNode&Secondary NameNode 工作机制 NameNode: 1.启动时,加载编辑日志和镜像文件到内存 2.当客户端对元数据进行增删改,请求NameNode 3.Nam ...

  8. 【转】java内存溢出的场景及解决办法

    参考: https://blog.csdn.net/qq_32671287/article/details/86063396 https://www.cnblogs.com/snowwhite/p/9 ...

  9. Javascript - Vue - 组件

    创建组件 组件是可以重复使用的html容器,可以把它注册到全局的Vue或实例的vue对象上,使它成为全局组件或vue对象的子组件,然后可以将它的html标签插入html文档中.组件的html只能有一个 ...

  10. SpringBoot博客开发之异常处理

    异常处理: 背景: 最近在搭建属于自己的个人博客(码农小白的执念),自己搭建后端的时候首先考虑的是异常处理.个人也是一边学习一边做,难免有疏漏的地方,希望朋友们在不对的地方提醒下. 技术栈: spri ...