文章目录

  • 排序
    • list
    • str、tuple
    • dict、set
    • 多级排序:key=
  • 反转
    • list
    • str
    • tuple

排序

list

两种方法:list的方法sort()、内置函数sorted()

li = [3,1,5,4,9,6]
li.sort(reverse=True)      # 降序,永久性函数
print(li)li = [3,1,5,4,9,6]
li = sorted(li, reverse=True) # 降序,暂时性函数(有返回 li=)
print(li)

str、tuple

str、tuple 都要转为 list,再排序

dict、set

d = {'b': 1, 'a': 2, 'c': 10}
# 键的升序排序
li = sorted(d.items(), key=lambda x: x[0])
print(li)       # [('a', 2), ('b', 1), ('c', 10)]
# 值的升序排序
li = sorted(d.items(), key=lambda x: x[1])
print(li)       # [('b', 1), ('a', 2), ('c', 10)]s = {4,3,5,1,2}
li = sorted(s)
print(li)       # [1, 2, 3, 4, 5]

多级排序:key=

key:

  • key=str.lower
    排序忽略大小写
  • key=lambda …
  • key=fun

key:多级的升序降序用符号,如 -x[0]

li = [('d', 10),('d', 0),('a', 20)]
li.sort(key=lambda x:x[0])     # 按li[0]排序
print(li)       # [('a', 20), ('d', 10), ('d', 0)]
li.sort(key=lambda x:(x[0],x[1]))      # 分级排序,若第一级相等,则按第二级排序
print(li)       # [('a', 20), ('d', 0), ('d', 10)]
li.sort(key=lambda x:(x[0],-x[1]))     # 分级排序
print(li)       # [('a', 20), ('d', 10), ('d', 0)]li = [13, 28, 37]
def fun(x):return x%10
li.sort(key=fun, reverse=True)        # 按个位数 降序
print(li)       # [28, 37, 13]li = [{'name':'d', 'age':10},{'name':'d', 'age':0},{'name':'a', 'age':20},]
li = sorted(li, key=lambda x:(x['name'],x['age']))        # 分级排序
print(li)       # [{'name': 'a', 'age': 20}, {'name': 'd', 'age': 0}, {'name': 'd', 'age': 10}]class Student():def __init__(self, name, age):self.name = nameself.age = agedef __repr__(self):return repr((self.name, self.age))li = [Student('d', 10),Student('d', 0),Student('a', 20),]
li.sort(key=lambda x: (x.name, -x.age))
print(li)           # [('a', 20), ('d', 0), ('d', 10)]

反转

list

三种方法:

  • 切片
  • list的方法reverse()
  • 内置函数reversed()
# 切片
li = [1,2,3,4]
print(li[::-1])# .reverse
li = [1,2,3,4]
li.reverse()    # 永久
print(li)# reversed
li = [1,2,3,4]
it = reversed(li)  # 返回迭代器
for x in it:print(x)

str

# 切片
s = 'abcd'
print(s[::-1])      # dcba  # reversed
s = 'abcd'
s = ''.join(reversed(s))
print(s)        # dcba

tuple

# 切片
t = [1,2,3,4]
print(t[::-1])      [4, 3, 2, 1]# reversed
t = [1,2,3,4]
it = reversed(t)
for x in it:print(x)

Python(二十五):排序、反转相关推荐

  1. python二十五:装饰器

    装饰器:本质是函数,为其他函数添加附加功能. 原则: 不修改被修饰函数的源代码. 不修改被修饰函数的调用方式. 装饰器 = 高阶函数+函数嵌套+闭包. 高阶函数: 函数接收的参数是一个函数名或者函数的 ...

  2. Python之精心整理的二十五个文本提取及NLP相关的处理案例

    一.提取 PDF 内容 # pip install PyPDF2 安装 PyPDF2 import PyPDF2 from PyPDF2 import PdfFileReader# Creating ...

  3. python灰度图片格式_[Python图像处理] 十五.图像的灰度线性变换

    [Python图像处理] 十五.图像的灰度线性变换 发布时间:2019-03-28 00:08, 浏览次数:619 , 标签: Python 该系列文章是讲解Python OpenCV图像处理知识,前 ...

  4. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

  5. SAP UI5 初学者教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  6. 开源操作系统 FreeDOS 二十五年演进史:因微软抛弃 MS-DOS 而来!

    [CSDN 编者按]1994 年,微软宣布停止支持 MS-DOS,而 FreeDOS 的作者 Jim Hall 作为 MS-DOS 的超级粉丝,决定自行设计一个 MS-DOS 的自由软件替代--这就有 ...

  7. 学习python第十五天,面对对象

    学习python第十五天,面对对象 面对对象又叫劝退对象,要么劝退你的对象,要么python劝退你,hhhh 开玩笑,但是这块知识点确实比较难 面向对象编 面向对象编程 指令式编程---->面向 ...

  8. 二十五个深度学习相关公开数据集

    转 [干货]二十五个深度学习相关公开数据集 2018年04月18日 13:42:53 阅读数:758 (选自Analytics Vidhya:作者:Pranav Dar:磐石编译) 目录 介绍 图像处 ...

  9. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  10. 未处理异常和C++异常——Windows核心编程学习手札之二十五

    未处理异常和C++异常 --Windows核心编程学习手札之二十五 当一个异常过滤器返回EXCEPTION_CONTINUE_SEARCH标识符时是告诉系统继续上溯调用树,寻找另外的异常过滤器,但当每 ...

最新文章

  1. Wireless-N Configuration
  2. 操作系统、Linux、CPU的几个疑惑点
  3. Windows搭建golang开发平台
  4. 微服务的好处与弊端_在云原生时代,就一定要用微服务吗?
  5. eclipse启动发生Failed to load JNI shared library
  6. linux shc shell脚本_使用shc工具加密shell脚本详解
  7. 马斯克宣布:半年后发布定制AI芯片,特斯拉车主免费升级Hardware 3
  8. [恢]hdu 2042
  9. c语言输入字符串_我们一起学C语言(四)
  10. 电脑计算器_教训!19年中级败给了电脑计算器,CPA难道要步后尘?
  11. Netty优雅退出机制和原理
  12. Ubuntu升级php7.0配置fpm socket
  13. pythonweb程序设计_Python编程实现的简单Web服务器示例
  14. 苹果手机清灰_手机听筒喇叭声音越来越小?来试试这三个小技巧
  15. php公众号模板消息重复3,如何利用微信公众号模板消息实现每天多次群发
  16. PMP项目经理常用项目管理工具分析
  17. 金融行业选用UPS不间断电源
  18. 三维目标检测--VoteNet增强版--MLCVNet论文解读
  19. java utf8 简繁转换 类库_java简繁转换(区分港台)
  20. 《趣谈网络协议》学习笔记 DAY06

热门文章

  1. matlab如何持续存贮多维矩阵,matlab多维矩阵在内存中存储顺序
  2. oracle 19602,Oracle CPU Costing
  3. python 消息中间件_如何评价腾讯开源的消息中间件TubeMQ?
  4. logback 打印日志参考,包含异步打印日志及历史日志压缩
  5. java 读取 properties 配置文件的几种方式
  6. 慕课python第六周测验答案_大学慕课2020Python编程基础章节测验答案
  7. C#hashtable使用说明 以及 Hashtable和HashMap的区别【总结性】
  8. Linux命令——set 和 unset
  9. [NOI2016]优秀的拆分
  10. 张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用