Python列表之常用内置函数、方法、技巧汇总

python语言在算法比赛中常用函数总结 查看常用的内置函数: >>> dir(__builtins__) 1、min()、max()、pow() >>> a = [1,2,3,4,5,6,7] >>> max(a) 7 >>> min(a) 1 >>> a = pow(3,2) >>> a 9 2、lower()、upper()返回字符串的小写大写,find() 用于找字符串中特定的字符串,没有找到的话返回-1,找到则返回第一个字母的索 阅读详情

列表相关操作

排序

列表的方法sort()或者内置函数sorted()可以完成排序操作。

# 对lst本身进行升序排列,使用sort()方法
lst = [3, 1, 2]
# lst变为[1, 2, 3]
lst.sort()        

# 得到一个新的升序列表,lst保持不变,使用sorted()内置函数
lst = [3, 1, 2]
# lst不变,lst_sorted为[1, 2, 3]
lst_sorted = sorted(lst)

注意:无论是方法sort()或者内置函数sorted()都有两个形参,reverse和key,前者表示是否倒序排列,后者表示排序的依据,通常会涉及到lambda匿名函数的使用。关于key形参以及lambda匿名函数的使用可以详见真题【排序】2023Q1A-身高提供排序 中的进阶部分。

# 对lst本身进行降序排列,使用sort()方法
lst = [3, 1, 2]
# lst变为[3, 2, 1]
lst.sort(reverse = True)        

# 得到一个新的降序列表,lst保持不变,使用sorted()内置函数
lst = [3, 1, 2]
# lst不变,lst_sorted为[3, 2, 1]
lst_sorted = sorted(lst, reverse = True)

翻转

列表的方法reverse()或者内置函数reversed()可以完成翻转操作。

# 对lst本身进行翻转,使用reverse()方法
lst = [3, 1, 2]
lst.reverse()        

# 得到一个新的翻转列表,lst保持不变,使用reversed()内置函数
lst = [3, 1, 2]
lst_reversed = list(reversed(lst))

也可以使用列表的切片操作来完成翻转,设置步长为-1即可。

# 得到一个新的翻转列表,lst保持不变,使用切片操作
lst = [3, 1, 2]
lst_reversed = lst[::-1]

映射

如果想把一个列表里的所有元素批量地调用某一个函数,并映射得到一个新的列表(原列表中元素相对位置不变),可以使用内置函数map(func, iter)。
map(func, iter)的含义是,对可迭代对象iter(通常是一个列表)里的所有元素都调用函数func,并得到一个新的map对象。如果我们对map对象的外部再调用list(),则可以得到一个新的列表。
其具体例子如下:

lst_str = ["1", "2", "3"]
# 得到lst_num为[1, 2, 3]
lst_num = list(map(int, lst_str))

上述过程,是将lst_str = [“1”, “2”, “3”]中的每一个元素即str类型的"1"、“2”、"3"都调用了函数int(),转化为int类型的的1、2、3。
实际上等价于

lst_str = ["1", "2", "3"]
lst_num = list()
for ch in lst_str:
    lst_num.append(int(ch))
# 得到lst_num为[1, 2, 3]

或

lst_str = ["1", "2", "3"]
lst_num = list(int(ch) for ch in lst_str)
# 得到lst_num为[1, 2, 3]

在ACM模式中,map()函数通常会用于处理用例的输入。具体可见ACM模式输入输出总结中的具体例子。
另外,需要注意map(func, iter)中的参数func既可以是一个内置函数,也可以是一个自定义函数,还可以是一个lambda匿名函数(可见后续lambda匿名函数的相关内容)。

枚举

如果想在for循环中同时获得列表的索引i和元素值v,可以使用枚举内置函数enumerate(lst),其语法如下:

lst = ["a", "b", "c"]
for i, v in enumerate(lst):
    print(i, v)

# 依次输出
# 0 a
# 1 b
# 2 c

这种写法等价于:

lst = ["a", "b", "c"]
for i in range(len(lst)):
    v = lst[i]
    print(i, v)

另外,enumerate(lst, start)支持传入第二个参数start,表示索引i的从start开始计数(但传入的整个lst还是会都会被遍历,只是i从start开始数而不是从0开始数)。譬如

lst = ["a", "b", "c"]
for i, v in enumerate(lst, 1):
    print(i, v)

# 由于i会从1而不是从0开始计数,
# 依次输出
# 1 a
# 2 b
# 3 c

合并

有两个长度相等的列表a_lst和b_lst,如果想获得由同一索引对应元素构成的二元元组列表,可以使用内置函数zip()。

a_lst = [0, 1, 2]
b_lst = ["a", "b", "c"]
# 得到二维列表[(0, 'a'), (1, 'b'), (2, 'c')]
merge_lst = list(zip(a_lst, b_lst))

更常见的使用场景是在for循环中:

a_lst = [0, 1, 2]
b_lst = ["a", "b", "c"]
for a, b in zip(a_lst, b_lst):
    print(a, b)

去重

直接使用哈希集合set()的特性,即可完成列表的去重。

lst = [1, 1, 2, 3, 3]
lst_nonrepeat = list(set(lst))

拷贝

先思考执行以下代码,为什么列表a会随着列表b的变化而变化?

a = [1,2,3]
b = a
b[0] = 0

print(b)
# 得到[0,2,3]
print(a)
# 得到[0,2,3]

这实际上涉及到Python一切皆对象的设计思想,此处的a和b是同一个列表对象的两个别名,它们表示同一个列表,因此修改b会牵连到a。这也是初学者非常容易犯的一个错误。
为了使得a和b指向两个不同的列表对象,我们在赋值操作时可以有两种操作,来让b获得a的拷贝:

  1. 使用切片。即令b = a[:]
a = [1,2,3]
b = a[:]
b[0] = 0

print(b)
# 得到[0,2,3]
print(a)
# 得到[1,2,3]
  1. 使用copy()方法。即令b = a.copy()
a = [1,2,3]
b = a.copy()
b[0] = 0

print(b)
# 得到[0,2,3]
print(a)
# 得到[1,2,3]

以上两种方法,都可以使得a和b表示两个不同的(但值相同的)列表对象。这个技巧在回溯算法中非常常见。

Python刷算法题常见内置函数、方法技巧【最全汇总】 对于一个给定的数列A,它的前缀和数列S中S[i+1]表示从第1个元素到第i个元素的总和。假设nums是一个int型列表,形如就是从索引0对应的元素开始,累加到索引i对应的元素的前缀和。譬如,那么其前缀和列表即为。前缀和的作用是可以在O(1)的时间复杂度下快速地计算出某段连续子数组的和。即譬如对于上述而言,如果想快速计算出子数组的结果,只需要计算即为答案。前缀和的作用也可以用来解释,为什么我们会把0也视为一个前缀和并且放在前缀和列表的第一个位置。由于设置了,那么,才能够得到起始位置为原数组。 阅读详情

相关推荐

Win11 24H2家庭版共享打印机失败?别慌,一个批处理脚本搞定所有设置

本文提供了Win11 24H2家庭版共享打印机失败的解决方案,通过一个批处理脚本自动修复所有设置问题。脚本包含安装组策略组件、修改关键注册表项等操作,帮助用户快速恢复打印机共享功能,适用于普通家庭用户。

weixin_30632089的博客 418

算法题Python常用内置函数、方法、技巧汇总(其一:列表)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!指向两个不同的列表对象,我们在赋值操作时可以有两种操作,来让。是同一个列表对象的两个别名,它们表示同一个列表,因此修改。表示两个不同的(但值相同的)列表对象。的特性,即可完成列表的去重。匿名函数的使用可以详见真题。有两个长度相等的列表。

weixin_48157259的博客 1596

小爱音箱Play增强版刷机接入大模型:自定义唤醒词与远程控制全攻略

智能音箱作为家庭语音入口,受限于厂商预设技能,难以满足个性化需求。通过串口刷机与Linux系统分区改造,可以完全掌控设备底层,将豆包、通义千问等大模型API接入原有音频链路,实现真正智能的语音问答。自定义唤醒词打破了“小爱同学”的唯一唤醒方式,结合ESP32-S3外挂模块,还能优化远场拾音。更深入的应用在于将音箱打造为家庭中控,通过大模型工具调用解析自然语言指令,实现远程控制电脑、智能灯等设备。本文从设备选型、拆机串口、系统备份到语音链路搭建,完整梳理了小爱音箱Play增强版的改造路径,适合具备动手能力的开

weixin_30036289的博客 702

100多个常用的Python函数!(部分函数含代码解读)

100多个常用的Python函数!(部分函数含代码解读)

wzk4869的博客 6023

Python+OpenCV实现游戏自动刷怪脚本(附完整代码)

本文详细介绍了如何使用Python和OpenCV开发游戏自动刷怪脚本,涵盖环境搭建、图像识别、行为决策引擎及反检测优化等关键技术。通过完整的代码示例,帮助开发者实现从简单脚本到智能自动化系统的升级,提升游戏效率。

weixin_29032489的博客 517

基于R语言的PLS算法实现解读

我们使用"pls"包来执行PLS回归,并提供了相应的源代码。在本文中,我们将详细解读基于R语言的PLS算法的实现过程,并提供相应的源代码。PLS算法的实现可以借助R语言中的"pls"包。该包提供了丰富的函数和工具,用于执行PLS回归、PLS-DA(PLS-Discriminant Analysis)和其他相关任务。除了执行PLS回归,"pls"包还提供了其他功能,例如PLS-DA(用于分类问题)和PLS变量选择等。上述代码将基于输入的X值,使用训练好的PLS模型进行预测,并返回预测结果。

TechWhizKid的博客 1043

算法题Python常用内置函数、方法、技巧汇总(其七:位运算)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!参与运算的两个数,如果两个相对应的位相等,那么该位的运算结果为。,得到一个新的二进制数,再将其转换为十进制数即为结果。参与运算的两个数,如果两个相对应的位的均为。参与运算的两个数,如果两个相对应的位的均为。的幂,才会具备上述性质,我们可以使用。

weixin_48157259的博客 1019

MobSF-v3源代码分析(一)

移动安全框架(MobSF)是一种自动化的移动应用程序(Android/iOS/Windows)测试框架,能够执行静态、动态和恶意软件分析。 它可用于Android、iOS和Windows移动应用程序的有效和快速安全分析,并支持二进制文件(APK,IPA和APPX)和压缩源代码。 MobSF可以在运行时为Android应用程序进行动态应用程序测试,并具有由CapFuzz(一种特定于Web API的安全扫描程序)提供支持的Web API模糊测试。MobSF旨在使您的CI/CD或DevSecOps管道集成无缝。

武天旭的博客 8959

python笔试题常用函数大全_python常见笔试题汇总

1.有两个文件 a.txt b.txt:a文件内容包含内容类似: b文件内容包含内容类似:a.txt              b.txttest              aaaabc              bbbtestabc             abctestabc用pyhton语言完成文件操作,并将文件中拥有相同内容的行输出到一个新建的文件c.txt 中解法一:考察知识点:...

weixin_39770626的博客 246

LPDDR6来了!到底比LPDDR5/5X强在哪?从速度到总线,技术细节一次说清!

LPDDR6不仅仅是速度快点、位宽大点那么简单,它是一次架构级的革新,从引脚、总线、时钟管理到Burst协议全部升级。🎯我们正在迈入一个“AI优先”的时代,内存架构也必须跟上。对于做芯片、做整机、做系统的你,理解LPDDR6的技术变化,提前规划测试方案,是现在就该启动的动作!

weixin_43199439的博客 1280

视频流推理的工程架构:YOLO模型如何做到单卡处理16路1080P实时流?

<think>我们只需要根据内容生成摘要,不超过150字。内容是关于YOLO模型单卡处理16路1080P实时流的技术分析,包括方案对比、架构设计等。摘要要简洁,突出关键点。</think>本文深度解析了YOLO模型单卡处理16路1080P实时流的技术方案,对比EagleEye、TensorRT+DeepStream、华为CANN及RK3588四条路线,重点介绍流水线架构、并发模型及显存优化,指出消费级显卡(如RTX 4090)即可实现高并发智能视觉分析。

2601_95807009的博客 162

Python列表常用方法与python操作列表的内置函数速查表

本文总结了Python列表的常用方法和操作方式。主要内容包括:1) 列表常用方法速查表,详细列出了append、extend、insert、remove等11种方法的中英文说明、参数类型、示例和返回值;2) 各类方法的代码示例演示,包括与索引相关的pop/insert方法、与元素相关的append/index/remove/count方法、排序相关的reverse/sort方法以及其他extend/copy方法;3) 运算符与内置函数操作列表的方式,如切片、拼接、成员检测等。通过清晰的表格和代码示例,全面展

qq_44951207的博客 1176

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python列表排序 list.sort方法和内置函数sorted

Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法和内置函数sorted,本文就是介绍list.sort方法和sorted内置函数的使用方法和区别. 一、list.sort方法 list.sort方法会就地排序列表,也就是说不会把原列表复制一...

weixin_43790276的博客 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Python基本内置函数及常用库汇总(加用法)

在初学Python时的基础内置函数汇总   最近暑假想学习Python,为了让自己未来的就业多一分竞争力,也为了让自己掌握多一项技能,于是就去看了大学MOOC嵩天老师的Python程序设计基础。课程内容很不错,讲的细致全面,由浅入深,最后的思维提高也令人深思,但我的脑子老化生锈记不住函数,再加上懒惰不去背记,忘得很快,于是写这个博客帮助自己背记。 此博文后续持续更新中… Python中的33个保留...

qq_35572368的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python列表内置函数

python的list形象理解,个人学习过程一些体会。

weixin_37645480的博客 3081

python列表常用方法大全

列表(List)是 Python 中最常用的数据结构之一,它是一个有序、可变的集合,可以存储任意类型的元素。以下是列表的定义及常见用法,包括拼接、增加数据、插入数据、删除数据、计算差值、相加、清空等操作,与字典和pandas结合使用场景比较多。

肖永威的专栏 4283

Python内置函数功能汇总

前言 今天整理的内容是Python的一些内置函数。下面这张图是老师在课堂上的一张PPT: 从图中我们可以看到,Python有68个内置函数,其中标有下划线的是老师要求必须记牢的,其实这些也是我们在使用Python时会用到最多的一些内置函数。图片下面的链接是老师推荐给我们去学习了解的关于Python内置函数的一篇博客。看到有博主将这68个内置函数归为10类,感觉很细致很清晰,在此就仿照这种格式来进...

MuZLL17的博客 2284

[Python] 列表操作及方法总结

本文主要讲解Python列表的概念及用法

Hudas的博客 6878

Python之常用内置函数

前言 Python内置函数在Python中占有非常重要的地位,熟练使用Python的内置函数对学习和使用python来说非常重要,有时候会非常的便利。Python官方文档给出python内置函数文档如下,现在来记录一下一些常用的内置函数 1. 数学运算 1.1 abs()函数 abs():返回给定参数的绝对值,参数可以是整数,浮点数,复数,如果是复数则返回其大小 ...

qq_44690947的博客 2651

python中列表的常用方法,python列表的常用方法

什么是列表:变量可以存储一个元素,而列表是一个“大容器”可以存N多个元素,程序可以方便的对这些数据进行整体操作注:列表相当于其他语言中的数组。

P5688346的博客 1316

【python】常用内置函数、列表字典元组方法对比

一、元组 元组(Tuple)与列表(List)非常像,不过列表用方括号[ ]表示,元组用圆括号( )表示。元组与列表最大的区别就是:元组里的元素不能被更改!!! 也就是说,元组不能增、删、改,只能查。查询操作跟列表一样,用法如下 my_tuple = ('java', 'python', 'c', 4, 6, True) print(my_tuple) # ('java', 'python', ...

冰冷的希望的博客 1930

Python中列表、元组、字典的内置函数和方法的异同

**列表**有丰富的内置方法支持修改和操作元素,由于其可变性,适合频繁更新和修改的场景。- **元组**方法相对较少,主要用于获取元素的数量和索引,因为它是不可变的,适合用作常量数据。- **字典**则提供方法来处理键值对,非常高效的进行查找、更新和删除操作,适合需要快速访问的场景。这些内置函数和方法极大地丰富了Python处理和操作数据的能力。根据不同的数据结构特点,选择合适的函数和方法能够提高代码的效率和可读性。特性函数方法定义位置定义在模块中,可以在任何地方调用。

qq_25699299的博客 1127
上一篇: python中的map、split、join函数的作用 => ACM输入输出流
下一篇: Python中的哈希表相关操作
Next2you
博客等级 码龄7年 1238粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Next2you

你真帅!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值