Python 进阶 (十三) 浅谈 sorted 函数应用及文件操作

python中的lambda函数与sorted函数 python中的lambda函数与sorted函数举例注意lambda常用使用场景1.函数式编程:2.Python中最常见的filter筛选、map小刷子、reduce合并,都可以用lambda表达式来生成sorted()函数排序1 简单列表(list)排序2 字典(dict)的键(key)排序3 字典(dict)的值(value)排序(使用lambda函数)4列表(list)内嵌套列表(list... 阅读详情

众所周知,def __cmp__ 作为方法存在,用sort对实例进行排序时,会用到class 中的__cmp__。但是,在python3中,取消了 sorted对cmp的支持。

python3 中有关排序的sorted方法如下:

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

其中,key 接受一个函数,这个函数只接受一个元素,默认为 None。

reverse是一个布尔值。如果设置为 True,列表元素将被倒序排列,默认为 False。

下面着重介绍 key 的作用原理:key 指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为 None 。

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]sorted(students,key=lambda s: x[2]) #按照年龄来排序

结果:

[('dave','B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

这是一个字符串排序,排序规则:小写<大写<奇数<偶数

s = 'asdf234GDSdsf23'

原理:先比较元组的第一个值,如果相等就比较元组的下一个值,以此类推。

先看一下 Boolean value 的排序:print(sorted([True,Flase]))===>结果[False,True]

Boolean 的排序会将 False 排在前,True 排在后。

  • x.isdigit()的作用是把数字放在前边,字母放在后边.

  • x.isdigit() and int(x) % 2 == 0 的作用是保证奇数在前,偶数在后。

  • x.isupper()的作用是在前面基础上,保证字母小写在前大写在后.

  • 最后的 x 表示在前面基础上,对所有类别数字或字母排序。

最后结果:addffssDGS33224

一道面试题:

list1=[7, -8, 5, 4, 0, -2, -5]#要求1.正数在前负数在后 2.正数从小到大 3.负数从大到小sorted(list1,key=lambda x:(x<0,abs(x)))

解题思路:先按照正负排先后,再按照大小排先后。

Python下文件操作与Java差不多。打开文件的模式有三种:

- r,只读模式(默认)。- w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

注意最后要记得关闭文件:f.close()

python只能将字符串写入到文本文件。要将数值数据存储到文本本件中,必须先试用函数str()将其转换为字符串格式。
 

#r模式(只读模式)
f = open('yesterday',encoding='utf-8')
data = f.read()
f.close()
print(data)
#只读文件的前5行:
f = open('yesterday','r',encoding='utf-8')
for i in range(5):
    print(f.readline())
#以列表的方式读取这个文件
f = open('yesterday','r',encoding='utf-8')
for line in f.readlines():
    print(line)
#对文件的第3行,做一个特殊的打印(这种方式比较低效,因为它会先把文件全部读取到内存中,文件较大时会很影响性能)
f = open('yesterday','r',encoding='utf-8')
for index,line in enumerate(f.readlines()):
    if index == 2:
        print('-----测试线----',line)
        continue
    print(line)
#比较高效的,逐行读取文件内容,因为它是一行一行的去读取文件,不会先把文件一次性全部读取到内存中
f = open('yesterday','r',encoding='utf-8')
for line in f:
    print(line)
#比较高效的,对文件的3三行进行过特殊打印
f = open('yesterday','r',encoding='utf-8')
count = 0
for line in f:
    if count == 2:
        print('------测试线----:',line)
    count += 1
    print(line)

#w模式(如果没有就创建文件,如果有就清空文件,一定要慎用)
f = open('yesterday','w',encoding='utf-8')
f.write("这就是一行测试\n")
f.write("测试2\n")
f.write("测试3")

#a模式(追加模式,如果没有就创建文件,如果有就把内容追加进去)
f = open('yesterday','a',encoding='utf-8')
f.write("test1\n")

#文件光标的操作
f = open('yesterday','r',encoding='utf-8')
#获得文件的光标
print(f.tell())
print(f.readline())
print(f.tell())
#回到最开始的位置(也可以指定一个位置,前提是你得知道你去往的字符具体在哪个位置才行)
f.seek(0)

#显示文件的编码
print(f.encoding)
#显示文件句柄的编号(我并不确定这个说法是否正确,用到时请仔细去查一下)
print(f.fileno())
#测试是否是一个终端设备文件
print(f.isatty())
#把缓存的内容刷新到硬盘(进度条那个脚本里有写一个示例)
f.flush()
#指定文件从哪里开始截断,如果没有参数,默认从0开始等于清空了这个文件
#f.truncate()

#r+ 模式(读,追加模式)
f = open('yesterday','r+',encoding='utf-8')
data = f.read()
print(data)
f.write("test...\n")

#还有 w+写读模式, a+追加读模式,这一般不用,真用到了再去了解下吧
#rb 模式,以二进制的方式读取这个文件
#wb 模式,二进制写
'''

'''
#with语句(很实用,记得要经常用哟~,在《Python编程从入门到实战》那本书里的文件与异常那一章有详细用法)
#为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('log','r') as f:

    ...
#如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
#在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
with open('log1') as obj1, open('log2') as obj2:
    pass

Python sorted() 函数 廖雪峰Python教程 sorted部分笔记 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。 Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -1 阅读详情

相关推荐

【python】Python高阶函数--sorted函数的高阶用法解析与应用实战

sorted()函数是Python的一个内置函数,用于对可迭代对象(如列表、元组、字典的键等)进行排序,并返回一个新的列表,包含排序后的元素。与列表的.sort()方法不同,sorted()函数不会修改原始的可迭代对象,而是返回一个新的列表。

景天科技苑 1811

Python如何对带有数字的文件进行排序

在这个例子中,Lambda 函数 `lambda x: (int(re.sub('\D', '', x)), x)` 可以作为 `key` 参数传递给 `sorted` 函数。`sorted` 函数将会根据元组中第一个元素的大小进行排序,如果第一个元素相同,则按照第二个元素排序。对于一个包含多个字符串的列表或其他可迭代对象,可以使用 Python 的 `sorted` 函数对其进行排序。`sorted` 函数可以接受一个 `key` 参数,用于指定排序的规则。现在,列表中的文件名按照数字部分的大小排序了。

行子的博客 1406

提升AI智能体回复质量:扣子平台提示词优化技巧与案例解析

本文深入探讨了在扣子平台上优化AI智能体提示词的关键技巧与实战案例。通过分析提示词设计的核心原则、业务场景适配策略以及平台高级功能应用,帮助开发者显著提升AI Agent的回复质量。文章特别强调了结构化提示词设计和A/B测试评估的重要性,并提供了电商客服场景的完整优化案例。

weixin_30897233的博客 538

Python-sort()/sorted()

sort 与 sorted 区别: 1 sort()是列表list的方法之一 L.sort(key=None, reverse=False) 2 sorted() 函数可以对任意可迭代对象排序。 sorted(iterable,key=None,reverse=False) key接受一个函数,这个函数只接受一个元素,用于从每个元素中提取一个用于比较的关键字...

Yolandera的博客 467

拯救者Y9000P 2022双系统实战:Ubuntu22.04分区优化与驱动避坑指南

本文提供联想拯救者Y9000P 2022款安装Ubuntu 22.04双系统的详细实战指南。重点讲解针对该机型的磁盘分区优化方案、NVIDIA显卡驱动安装避坑技巧,以及安装后的网络、时间同步等必备配置,帮助用户高效完成双系统部署并提升使用体验。

weixin_29208327的博客 422

BGE-M3 文本情感分类实战:预训练模型微调,导出ONNX并测试

本文介绍了如何基于BGE-M3开源模型实现一个简单的二分类情感分析任务,展示了NLP中经典的“预训练 + 微调”范式。首先,加载预训练模型和分词器,并构建分类头整合到模型中。接着,进行数据预处理并构建DataLoader。然后,定义优化器、损失函数和训练循环,进行模型微调。微调过程中,可以选择基于[CLS] token的单特征提取或基于池化策略的多特征融合。最后,通过验证与推理评估模型性能,并导出ONNX模型以适应生产环境。BGE-M3在语义表征任务中表现优异,适合作为文本分类、语义搜索等下游任务的基础模型

大鹏的专栏 1403

你真的明白python排序sort()和sorted()区别吗?

大家都知道,python排序有内置的排序函数 sort() 和 高阶函数sorted() 。但是它们有什么区别呢?《转型python数据分析学习路线》《转型python数...

python爬虫人工智能大数据 4749

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4779

【Python】排序之sorted()&sort()

sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。 需要注意:sort()方法仅定义在list中,而sorted()方法对所有的可迭代序列都有效。 # 用sort实现list的降序排列 nums1 = sorted(nums,reverse=True) # print(nums) [3, 2, 1, 5, ...

littlemichelle 1758

英伟达 DGX Spark & Reachy Mini 入门教程(一)

英伟达在2026年CES上发布多款开放模型,包括Nemotron推理LLM、Isaac GR00T VLA和Cosmos世界模型,助力开发者构建个性化AI代理。文章详细介绍了如何通过DGXSpark和Reachy Mini机器人打造办公助手,涵盖材料准备(推理/视觉模型、文本转语音服务)、智能体构建(NeMo Agent Toolkit框架)、工具调用和路由策略实现。系统支持本地/云端部署,提供语音交互、视觉识别和动作执行功能,并保持完全开源可定制。最后给出运行演示的终端配置步骤和测试用例,鼓励开发者在此基

2506_90492529的博客 2713

【Java基础知识 19】Java接口的作用和意义

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

学Java,找哪吒 2万+

使用Python按文件名中的数字大小排序

Python中的sorted函数可以对一个列表进行排序,其默认的排序方式是按照字符的Unicode编码大小进行排序。在实际开发中,经常需要对一些文件名、文件路径等进行排序,这就需要使用到自然排序。自然排序是一种将字符串中的数字按照数值大小排序的方式,而不是按照字符串顺序排序。具体来说,对于非数字部分的子串,可以直接替换成空字符串,这样它们在排序时就会被忽略掉,只关注数字部分的大小。如果只需要按数字部分进行排序,而不关注非数字部分的字典序排序,可以简单修改。,但使用自然排序时,排序结果为。

曾续缘的博客 2074

华为OD机试E卷 -猜字谜(Java & Python& JS & C++ & C )

小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下:请你写一个程序帮忙在谜底库中找到正确的谜底。谜面是多个单词,都需要找到对应的谜底,如果找不到的话,返回”not found”

算法大师! 3487

Python进阶(十三)浅谈sorted 函数应用

key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。print(sorted([True,Flase]))===>结果[False,True]如果设置为True,列表元素将被倒序排列,默认为False。原理:先比较元组的第一个值,如果相等就比较元组的下一个值,以此类推。其中,key接受一个函数,这个函数只接受一个元素,默认为None。的排序会将 False 排在前,True排在后。解题思路:先按照正负排先后,再按照大小排先后。对实例进行排序时,会用到。

IT全栈 华强工作室 4万+

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python的sorted函数

一、sort函数 如果对python中的列表进行排序,可以使用List类的成员函数sort,该函数会在原空间上进行操作,对列表本身进行修改,不返回副本。语法如下: L.sort(cmp=None, key=None, reverse=False) 二、sorted函数 sorted函数就比sort函数要强大许多了,sort只能对列表进行排序,sorted可以对所有可迭代类型进行排序,并且返回新的...

啥也不是 7万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python之排序函数sorted()详解

文章目录描述语法返回值实例一般用法:高级用法:1、lambda函数2、operator.itemgetter()3、机器学习实例参考 描述 sorted() 函数对所有可迭代的对象进行排序操作。 sort 与 sorted 区别: 1、sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 2、list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 语法 sorte

weixin_41998772的博客 4万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python进阶(十三)-浅谈sorted 函数应用

分享一下我的偶像大神的人工智能教程!http://blog.youkuaiyun.com/jiangjunshow 也欢迎转载我的文章,转载请注明出处 https://blog.youkuaiyun.com/mm2zzyzzp Python进阶(十三)-浅谈sorted 函数应用   众所周知,def cmp 作为方法存在,用sort对实例进行排序时,会用到class 中的...

mm2zzyzzp的博客 126

python中sorted()函数的用法

sorte(): 可对list进行排序 栗子1: 正序排序 a = [20, 5, 6, 7, 8, 1] res1 = sorted(a) # 正序排序 print(res1) 结果为: [1, 5, 6, 7, 8, 20] 栗子2: 逆序排序 a = [20, 5, 6, 7, 8, 1] res1 = sorted(a, reverse=True) # 逆序排序 print(res1...

zhf的博客 1万+

python sorted作用_Python进阶(十三)-浅谈sorted 函数应用

Python进阶(十三)-浅谈sorted 函数应用众所周知,def cmp 作为方法存在,用sort对实例进行排序时,会用到class 中的cmp。但是,在python3中,取消了 sorted对cmp的支持。python3 中有关排序的sorted方法如下:sorted(iterable,key=None,reverse=False)其中,key接受一个函数,这个函数只接受一个元素,默认为No...

weixin_39898248的博客 197

【python进阶】sorted函数key用法。

python sorted &amp;amp; list.sort() 在python中,sorted和list.sort背后的算法是Timsort算法,它是一种自适应算法,会根据原始数据的顺序特点交替使用插入排序或者归并排序,已达到最佳效率。这样的算法被证明是很有效的,因为来自真实世界的数据通常是有一定的顺序特点的。Timsort在2002年的时候,首次用在CPython中。 key参数很妙 key参数...

fanc的博客 1万+

python sorted函数倒序_Python sorted函数

排序的核心是比较两个元素的大小,python中数字排序可以直接使用sorted函数,如果是字符串或者字典,直接比较数学上的大小是没有意义的。因此,比较过程必须通过函数抽象出来。通常规定,对于两个元素x和y,如果认为xy,则返回1,这样排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。print sorted([36,5,12,9,21]) # ==> [5, 9, 12, ...

weixin_39850697的博客 5865

python中sorted函数逆序_Python中sorted函数的用法(转)

【Python】 sorted函数我们需要对List、Dict进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本方法2.用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变--------------------------------sorted-----------------...

weixin_39972567的博客 3380

Python-VBA函数之旅-sorted函数

sorted函数

ygb_1024的博客 2089

【python】Python 高阶函数map、reduce、filter、sorted

高阶函数(Higher-Order Function)是指能够接收函数作为参数,或者将函数作为返回值的函数。Python 内置了多种高阶函数,它们为我们提供了编写简洁代码的能力。lambda高阶函数为我们提供了一种优雅的方式来处理可迭代对象。通过合理运用mapreducefilter和sorted,我们可以编写出更加简洁和高效的 Python 代码。lambda表达式的配合使用,更是让代码显得简洁且富有表现力。

longforone的博客 1923

python中sorted函数的详细使用方法

sorted(iterable,cmp,key,reverse) 参数:iterable可以是list或者iterator; cmp是带两个参数的比较函数; key 是带一个参数的函数; reverse为False或者True; cmp比较 &gt;&gt;&gt; list1 = [('david', 90), ('mary',90), ('sara',80),('lily',9...

huang_shao1的博客 1万+
上一篇: Python 进阶 (十二) 浅谈 python 中的方法
下一篇: Elasticsearch索引生命周期管理
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值