目录

Ⅰ.sorted排序

Ⅱ.排序具体的方法

(1)sort的神方法(注意是sort)

(2)sorted的神方法(注意这里是sorted)

        常见场景

         1. 单关键字排序

         2. 多关键字排序

         3.按倒序字符串排序:

         4.按字典某字段排序:

         5.单条件 

         6.多条件组合:

         7.处理 None:

Ⅲ.list和str创建以及tuple元组

Ⅳ.字符串的拼接和for的倒序遍历

Ⅴ.列表的拼接---join的使用:列表list转为字符串

Ⅵ.split()的使用和join通常配合使用

Ⅶ.list的负数访问

Ⅷ.ord和chr函数(非常有用)

1. ord() 函数

2. chr() 函数

Ⅸ.一键实现 十进制转2、8、 16 进制(必须要会)

Ⅹ.一键实现2、 8、 16进制转10进制(同理这个也必须要会)


Ⅰ.sorted排序

》列表排序---segs=[[1, 4], [3, 6], [5, 7]]

(1)普通的简单方法:

s = sorted(segs)---(默认情况升序,值为False)

降序---s = sorted(segs, reverse=True)

默认排序规则当不指定 key 参数时,sorted() 会使用默认的排序规则。对于列表中的子列表,Python 会按字典序进行比较:

  • 先比较每个子列表的第一个元素,

  • 如果第一个元素相等,再比较第二个元素,以此类推。

(2)带有lambda表达式的key方法

s=sortef(segs,key=lambda x:x[0])

特别注意:字符也能进行排序

Ⅱ.排序具体的方法

(1)sort的神方法(注意是sort)

def var(x):    print(f"处理: {x}")    return x 
N = [3, 1, 2] 
N.sort(key=var) # 输出: # 处理: 3 # 处理: 1 # 处理: 2 
print(N)  # [1, 2, 3]

为啥 var 不用带参数:

  • key=var 的写法

    • sort() 会自动把列表中的每个元素传给 var 函数。

    • 你写 key=var(不加括号),是把函数本身传给 sort(),而不是调用它。

    • sort() 内部会循环调用 var(x),x 是 N 中的每个元素。

  • 不需要显式参数:

    • sort() 知道要对 N 的每个元素应用 var,所以你只定义 var(x) 的逻辑,sort() 负责传参。

  • 错误写法:N.sort(key=var())

    • 这会立刻调用 var(),但 var 需要一个参数,报错 TypeError: var() missing 1 required positional argument: 'x'。

  • 正确写法:N.sort(key=var)

    • 传函数名,sort() 自动处理。

(2)sorted的神方法(注意这里是sorted)

def var(x):print(f"处理: {x}")return xN = [3, 1, 2]
M = sorted(N, key=var)
# 输出:
# 处理: 3
# 处理: 1
# 处理: 2
print(M)  # [1, 2, 3]
print(N)  # [3, 1, 2](原列表不变)

》明白了其实key里面就是对数组里的x进行统一的变化,比如x%10,x//10,甚至有a=sorted(a,key=lambda x:(var(x),x))

  • sorted(iterable, key=None, reverse=False):

    • iterable:要排序的对象(列表、元组等)。

    • key:一个函数,定义排序依据

    • reverse:是否降序。

    • 返回:新的排序后的列表。

  • lambda:

    • 匿名函数,写法是 lambda 参数: 表达式

    • 在 sorted() 中,lambda 定义怎么比较每个元素。

常见场景
  1. 用 lambda 按绝对值排序:

    a = [-3, 2, -1] b = sorted(a, key=lambda x: abs(x)) print(b) # [-1, 2, -3]

  2. 降序:

    a = [3, 1, 2] b = sorted(a, key=lambda x: x, reverse=True) print(b) # [3, 2, 1]

1. 单关键字排序
  • 按最后一位数字排序:

    a = [13, 25, 31] b = sorted(a, key=lambda x: x % 10) print(b) # [31, 13, 25](1, 3, 5)

  • 按字符串长度:

    a = ['cat', 'elephant', 'dog'] b = sorted(a, key=lambda x: len(x)) print(b) # ['cat', 'dog', 'elephant']

2. 多关键字排序
  • 用元组:lambda 返回元组,按元素顺序比较。

  • 例子:按 (主关键字, 次关键字) 排序:

    pairs = [(1, 3), (2, 1), (1, 2)] b = sorted(pairs, key=lambda x: (x[0], x[1])) print(b) # [(1, 2), (1, 3), (2, 1)]

3.按倒序字符串排序
a = ['cat', 'dog', 'bat']
b = sorted(a, key=lambda x: x[::-1])
print(b)  # ['dog', 'bat', 'cat']  #反转后的字符串是:'tac'、'god'、'tab'然后进行排序
4.按字典某字段排序
data = [{'name': 'cat', 'age': 3}, {'name': 'dog', 'age': 2}] b = sorted(data, key=lambda x: x['age']) print(b)  # [{'name': 'dog', 'age': 2}, {'name': 'cat', 'age': 3}]
5.单条件
a = [ -2,1,3, -4] b = sorted(a, key=lambda x: x if x > 0 else -x) 
print(b)  # [1,-2, 3, -4]
#把所有数字映射成“正数形式”,但保留正负信息,最终排序按照正数排但显示最初的值
6.多条件组合
a = ['cat', 'dog', 'elephant'] 
b = sorted(a, key=lambda x: (len(x), x))  # 先长度,再字典序 
print(b)  # ['cat', 'dog', 'elephant']
7.处理 None
a = [1, None, 3] 
b = sorted(a, key=lambda x: (x is None, x)) 
print(b)  # [None, 1, 3]

Ⅲ.list和str创建以及tuple元组

》tuple元组化:

》list和str创建:

》默认情况下,输入的就是字符串类型

Ⅳ.字符串的拼接和for的倒序遍历

Ⅴ.列表的拼接---使得默认下标从1开始引入元素

join的使用:列表list转为字符串

或者另一个方法

Ⅵ.split()的使用和join通常配合使用

Ⅶ.list的负数访问

Ⅷ.ord和chr函数(非常有用)

1. ord() 函数

ord() 函数用于获取一个字符的 Unicode 码点(整数表示)。

语法
ord(c)


参数
c:一个长度为 1 的字符串(即单个字符)。
返回值
返回字符 c 的 Unicode 码点(整数)。

print(ord('A'))  # 输出:65
print(ord('a'))  # 输出:97
print(ord('中'))  # 输出:20013



2. chr() 函数

chr() 函数用于将一个 Unicode 码点(整数)转换为对应的字符。

语法
chr(i)


参数
i:一个整数,表示 Unicode 码点(范围:0 到 1114111)。
返回值
返回 Unicode 码点 i 对应的字符。

print(chr(65))  # 输出:A
print(chr(97))  # 输出:a
print(chr(20013))  # 输出:中

Ⅸ.一键实现 十进制转2、8、 16 进制(必须要会)

Ⅹ.一键实现2、 8、 16进制转10进制(同理这个也必须要会)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921162.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921162.shtml
英文地址,请注明出处:http://en.pswp.cn/news/921162.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GOFLY开源客服系统-处理gin框架下的session中间件

了解更多,搜索:"程序员老狼" 在当今数字化时代,在线客服系统已成为企业与客户沟通的重要桥梁。作为GOFLY客服系统的开发者,我今天要分享我们如何在系统中实现安全可靠的会话管理机制——这是保障用户数据安全的核心技术。 为什么…

Burp Suite 插件 | 提供强大的框架自动化安全扫描功能。目前支持1000+POC、支持动态加载POC、指定框架扫描。

工具介绍 Rinte 是一款专为渗透测试人员设计的 Burp Suite 插件,提供强大的自动化安全扫描功能。该插件集成了框架检测、漏洞扫描和敏感路径扫描等多种功能,帮助安全研究人员快速识别目标系统的安全漏洞。支持1000框架POC、支持动态加载POC、指定框架扫描…

记录测试环境hertzbeat压测cpu高,oom问题排查。jvm,mat,visulavm

记录测试环境hertzbeat压测cpu高,oom问题排查。jvm,mat,visulavm 一,问题背景 运维平台,采用hertzbeat开源代码进行采集。对单个设备连接,采集9个指标。目前hertzbeat对1个设备连接,下发9次单独…

基于 CC-Link IE FB 转 DeviceNet 技术的三菱 PLC 与发那科机器人在汽车涂装线的精准喷涂联动

案例背景在汽车制造行业,生产线的高效协同是提高生产效率和产品质量的关键。某汽车制造企业的车身焊接车间采用了基于 CC-Link IE FB 主站的三菱 Q 系列 PLC,凭借其强大的功能和稳定的性能,对焊接机器人等设备进行精准控制。而在涂装车间&…

极空间打造 “超级中枢”,从书签笔记到聊天分享,一键全搞定!

「NAS、键盘、路由器年轻就要多折腾,我是爱折腾的熊猫,今天又给大家分享最近折腾的内容了,关注是对我最大的支持,阿里嘎多」引言书签项目熊猫介绍过不少啦,但今天要介绍的这个项目,大不一样。平常的书签&am…

Swift 解法详解:LeetCode 368《最大整除子集》

文章目录摘要描述题解答案题解代码分析代码拆解示例测试及结果时间复杂度空间复杂度总结摘要 有时候我们会遇到这样的问题:给定一堆数,如何从中挑出一个子集,让这个子集里的每一对数都能互相整除?题目要求我们找出最大的这样一个…

python数据分析 与spark、hive数据分析对比

Python 数据分析与 Spark、Hive 数据分析在应用场景、数据处理能力、编程模型等方面存在差异,以下是详细对比:​数据处理规模​Python 数据分析:​特点:Python 数据分析常用库如Pandas,在单机环境下对中小规模数据集&a…

专题:2025全球新能源汽车供应链核心领域研究报告|附300+份报告PDF、数据仪表盘汇总下载

原文链接:https://tecdat.cn/?p43781 原文出处:拓端抖音号拓端tecdat 2024年,全球汽车产业站在了“旧秩序打破、新格局建立”的十字路口——一边是传统供应链受宏观经济波动、地缘博弈冲击,全球零部件企业营收首次出现负增长&…

从数据孤岛到智能中枢:RAG与智能体协同架构如何重塑企业知识库

1. 前言企业知识管理正面临前所未有的挑战。分散在各个系统中的文档、报告、邮件和数据库形成了数据孤岛,而大语言模型在缺乏准确知识支撑时容易产生幻觉回答。这种矛盾催生了检索增强生成(RAG)技术的快速发展。RAG不仅仅是技术组合&#xff…

UBUNTU之Onvif开源服务器onvif_srvd:2、测试

运行 # eth0: 网卡 # 192.168.0.229: IPsudo ./onvif_srvd \--ifs eth0 \--scope onvif://www.onvif.org/name/TestDev \--scope onvif://www.onvif.org/Profile/S \--name RTSP \--width 800 --height 600 \--url rtsp://192.168.0.229:554/unicast \--type JPEG 测试 使用…

项目中常用的git命令

Git介绍Git是一个分布式版本控制系统,主要作用就是记录代码的历史变化,让开发者可以查看任意时间点的代码,回滚到某个历史版本,对比不同版本之间的差异。在企业开发中,通过是通过多人协作开发,具体分支可以…

C 语言标准输入输出库:`stdio.h` 的使用详解

1. 概述 在 C 语言中,stdio.h(Standard Input Output Header)是一个标准库头文件,主要用于提供输入与输出功能。几乎所有的 C 程序都会用到它,因为它定义了用于读取、写入、格式化、文件操作等常用函数。 要在程序中使…

flume扩展实战:自定义拦截器、Source 与 Sink 全指南

flume扩展实战:自定义拦截器、Source 与 Sink 全指南 Flume 内置的组件虽然能满足大部分场景,但在复杂业务需求下(如特殊格式数据采集、定制化数据清洗),需要通过自定义组件扩展其功能。本文将详细讲解如何自定义 Flu…

【数学建模】数学建模应掌握的十类算法

【数学建模】数学建模应掌握的十类算法前言数学建模竞赛官网1. 全国大学生数学建模竞赛官网2. 美国大学生数学建模竞赛官网3. Matlab 网站4. 研究生数学建模竞赛官网数学建模应掌握的十类算法1. 蒙特卡罗方法(Monte-Carlo方法, MC)2. 数据拟合、参数估计、插值等数据处理算法3.…

物联网开发学习总结(1)—— IOT 设备 OTA 升级方案

在物联网设备数量呈指数级增长的今天,如何高效、可靠地实现设备固件升级(OTA)成为了每个物联网开发者必须面对的重要课题。传统的HTTP升级方案虽然简单易用,但随着设备规模的扩大,其局限性日益明显。 一、HTTP OTA升级…

正运动控制卡学习-网络连接

一.硬件介绍使用正运动控制卡ECI1408进行学习,使用正运动函数库进行设置,并参考网络视频等进行学习记录,侵权删除.二.使用C#创建连接界面三.创建运动卡类3.1.创建IP连接字段private string IP; //连接IP public Inptr IPHandle;//…

存算一体:重构AI计算的革命性技术(1)

存算一体:重构AI计算的革命性技术 一、从存储墙到存算一体:计算架构的百年变革 1.1 冯诺依曼架构的困境与突破 在计算机发展的历史长河中,存储与计算的分离一直是制约性能提升的关键瓶颈。1945年,计算机科学家冯诺依曼提出了现代计…

Linux之centos 系统常用命令详解(附实战案例)

CentOS 系统常用命令详解(附实战案例) 前言 本文针对 CentOS 7/8 系统,整理了运维工作中高频使用的命令,涵盖系统信息、文件操作、用户权限、软件管理、服务控制、网络配置等核心场景,并结合实战案例说明具体用法&…

生成知识图谱与技能树的工具指南:PlantUML、Mermaid 和 D3.js

摘要本文详细介绍了生成知识图谱、技能树和桑基图的工具,包括 PlantUML、Mermaid 和 D3.js,以及它们的概念、原理和使用方法。文档为前端开发提供了示例知识图谱、技能树和桑基图,并为新手提供了在线编辑器和 VS Code 的操作步骤,…

如何正确使用ChatGPT做数学建模比赛——数学建模AI使用技巧

文章转自川川菜鸟:如何正确使用ChatGPT做数学建模比赛 引言 数学建模竞赛是将数学理论应用于解决现实世界问题的一项重要赛事。在这类比赛中,学生团队通常需要在有限时间内完成从问题分析、模型构建、算法实现到结果分析和论文撰写的一整套流程。这对参…