了解 Python 最常见的内置函数(python常用内置函数表)
off999 2024-09-14 07:11 57 浏览 0 评论
Python 的内置函数基础
Python 的内置函数是该语言不可或缺的一部分,无需额外的库即可提供基本功能。这些函数始终可用,无需导入任何模块即可使用。它们是在 C for CPython(标准 Python 实现)中实现的,这确保了它们针对性能进行了高度优化。
为什么存在内置函数
内置函数的存在使语言更加用户友好和高效。它们提供了一种无需编写其他代码即可执行常见任务的方法,这有助于开发人员节省时间并减少出错的可能性。内置函数还通过提供标准化的操作执行方式来提高代码的可读性和可维护性。这种一致性使开发人员能够快速理解和使用其他人编写的代码。
此外,内置函数封装了复杂的逻辑和优化,使开发人员更容易高效地执行操作,而无需了解底层实现细节。这种抽象对初学者特别有益,因为它允许他们专注于学习语言和解决问题,而不是担心性能和优化。
如何使用内置函数
几乎每个 Python 程序都使用内置函数。它们提供了广泛的功能,从基本的输入/输出操作到复杂的数据操作。以下是如何使用内置函数的一些关键方面:
- 基本操作: len() 和 type() 等 print() 函数用于基本操作,例如显示输出、确定对象长度和检查变量类型。
- 数据操作: max() 、 min() 和 sorted() 等 sum() 函数用于执行各种数据操作,例如计算总和、查找最大值和最小值以及对数据进行排序。
- 函数式编程:像 、 filter() 和 reduce() (来自 functools 模块)这样的 map() 函数通过允许开发人员将函数应用于序列和过滤数据来支持函数式编程范式。
- 迭代和聚合:、 enumerate() 和 range() 等 zip() 函数用于迭代和聚合,从而更轻松地遍历数据和使用索引。
使用内置函数的好处
- 效率:内置函数在 C for CPython 中实现,使其非常高效。它们通常比用纯 Python 编写的等效代码更快地执行操作。
- 可靠性:内置函数经过全面测试并被广泛使用,这意味着与自定义实现相比,它们更可靠且不易出现错误。
- 可读性:使用内置函数使代码更具可读性和可理解性。其他开发人员更容易阅读和理解使用标准函数的代码。
- 方便:内置功能提供了一种执行常见任务的便捷方式。开发人员无需为经常执行的任务编写额外的代码。
关键内置功能的实现和优化
在这里,将看看 Python 的一些关键内置函数的实现细节和优化。了解这些函数是如何实现和优化的,可以帮助你编写更高效的代码,并更好地理解 Python 内置功能的强大功能。
print()
该 print() 函数用于将数据输出到控制台。它可以处理多个参数,默认情况下,这些参数被转换为字符串并与空格连接。
print("Hello,", "world!")该 print() 函数是用 C 语言在 CPython 中实现的。它使用 sys.stdout file 对象来写入输出,该输出被缓冲以提高性能。默认情况下, print() 在输出末尾添加换行符,可以使用 end 参数自定义该字符。
print("Hello,", "world!", end=" ")
print("This is on the same line.")缓冲的使用减少了系统调用的次数,使函数更加高效。
len()
该 len() 函数返回对象的长度,该对象可以是序列(如字符串、列表或元组)或集合(如字典或集合)。
my_list = [1, 2, 3, 4]
print(len(my_list))对于序列,该 len() 函数直接从对象的元数据中检索 length 属性,元数据存储为对象结构的一部分。这意味着在恒定时间(O(1)) len() 下运行,使其非常高效。
sum()
该 sum() 函数返回可迭代对象中所有项的总和,例如列表或元组。
numbers = [1, 2, 3, 4]
print(sum(numbers))该 sum() 函数使用用 C 编写的高度优化的循环来遍历元素并将它们加在一起。此实现最大限度地减少了与 Python 中的循环相关的开销,使函数非常快。此外, sum() 可以采用第二个参数来指定求和的初始值。
numbers = [1, 2, 3, 4]
print(sum(numbers, 10)) # Starts the sum at 10max()和min()
max() 和 min() 函数分别返回可迭代对象中的最大和最小项。
numbers = [1, 2, 3, 4]
print(max(numbers))
print(min(numbers))这两个 max() min() 函数都只迭代一次输入可迭代,为当前最大值或最小值保留单个变量。这确保了这些函数在线性时间 (O(n)) 内运行,其中 n 是可迭代对象中的元素数。这些函数是用 C 语言实现的,这增加了它们的效率。
sorted()
该 sorted() 函数从可迭代对象中的项返回一个新的排序列表。
numbers = [4, 2, 1, 3]
print(sorted(numbers))该 sorted() 函数使用 Timsort 算法,该算法是从合并排序和插入排序派生的混合排序算法。Timsort 非常高效,在最坏的情况下时间复杂度为 O(n log n)。它经过优化,可在真实数据上表现良好,这些数据通常包含部分有序序列。
Timsort 的工作原理是将数据划分为称为“运行”的小块,然后合并它们。它利用数据中的现有顺序来减少所需的比较和交换次数。
更高级的内置功能
除了基本的内置函数外,Python 还提供了一套高级内置函数,可实现更复杂的操作。这些函数支持函数式编程范式和高级数据操作技术,使其成为开发人员武器库中的强大工具。在本节中,我们将深入探讨三个高级内置函数: map() 、 filter() 和 zip() 。
map()
该 map() 函数将指定的函数应用于可迭代对象中的所有项,并返回一个映射对象,该对象是迭代器。
用法示例:
numbers = [1, 2, 3, 4]
squared = map(lambda x: x**2, numbers)
print(list(squared))在此示例中, map() 将 lambda 函数 lambda x: x**2 应用于列表中 numbers 的每个项目,从而生成一个新的平方值迭代器。
该 map() 函数在 CPython 中用 C 语言实现,这保证了其效率。它以懒惰的方式运行,这意味着它只在需要时将该功能应用于项目。这样可以避免创建中间列表,因为中间列表对于大型数据集来说可能是内存密集型的。
延迟计算允许 map() 高度内存效率,因为它动态生成每个值,而不是将所有结果存储在内存中。这在处理大型数据流或数据转换管道时特别有用。
filter()
该 filter() 函数从指定函数返回 true 的可迭代对象的元素构造迭代器。
用法示例:
numbers = [1, 2, 3, 4]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))在此示例中, filter() 将 lambda 函数 lambda x: x % 2 == 0 应用于列表中 numbers 的每个项目,从而生成偶数的迭代器。
该 filter() 函数也是用 C 语言实现的,并且像 一样 map() ,可以延迟运行。它仅在需要时计算可迭代的每个项目,如果函数返回 true,则包括输出迭代器中的项目。
这种延迟评估可最大程度地减少内存使用并提高性能,尤其是在处理大型数据集或组合多个筛选步骤时。通过避免创建中间列表, filter() 可以减少与数据操作相关的开销。
zip()
该 zip() 函数采用多个迭代对象(零个或多个),将它们聚合到元组中,并返回这些元组的迭代器。
用法示例:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print(list(zipped))在此示例中, zip() 将列表 list1 合并 list2 为元组迭代器,其中每个元组都包含输入列表中的相应元素。
该 zip() 函数是用 C 语言实现的,旨在提高效率。它并行迭代输入可迭代对象,即时创建元组,而无需将它们存储在内存中。这样 zip() 既省时又省内存。
zip() 一旦最短的输入可迭代对象用尽,就会停止创建元组,确保不会发生越界错误。这种设计 zip() 特别适用于组合来自多个来源的数据,同时保持性能和安全性。
结合高级内置功能
Python 内置函数的优势之一是它们的可组合性。通过组合 map() 、 filter() 和 zip() ,您可以使用最少的代码创建功能强大且富有表现力的数据转换。
例:
list1 = [1, 2, 3, 4]
list2 = ['one', 'two', 'three', 'four']
combined = zip(list1, list2)
filtered = filter(lambda x: x[0] % 2 == 0, combined)
result = map(lambda x: (x[0], x[1].upper()), filtered)
print(list(result))在此示例中, zip() 将 和 list2 合并 list1 为元组, filter() 选择第一个元素为偶数的元组,并将 map() 每个元组的第二个元素转换为大写。最终结果是满足指定条件的转换元组列表。
相关推荐
- 系统大全网站(系统大全网站推荐)
-
下载时发生错误可能是以下原因:1.你的网速过慢,网页代码没有完全下载就运行了,导致不完整,当然就错误了。请刷新。2.网页设计错误,导致部分代码不能执行。请下载最新的遨游浏览器。3.你的浏览器不兼容导致...
- win10官方启动盘(win10官方启动盘怎么用)
-
1、在开始菜单搜索“设置”,打开“设置”;2、点击“更新与安全”,在左侧菜单栏点击“恢复”;3、点击“启动项”,在弹出的窗口中会显示当前可以启动的项目,点击“编辑”;4、在打开的“编辑启动项”窗口中,...
- win10系统安装不了(win10 安装不了)
-
电脑装不上win10系统可能是因为以下几个原因导致的原因一:win10安装文件不对我们在安装win10之前,要确保下载到安装包真实可用的,否则安装肯定会有问题,建议下载安全可靠的安装包!原因二:系统文...
- 国内dns哪个最快(dns开启好还是关闭好)
-
移动dns设置首选114.114.114.114,它又好又快。首选DNS和备用DNS都是一种域名系统,这两种域名系统有着先后之分,如果在首选DNS正常的情况下,就用首选DNS地址。当首选DNS服务器出...
- winxp安装盘(winxp系统安装)
-
xp系统安装步骤如下1、将下载的xp系统iso压缩包文件下载到C盘之外的分区,比如下载到D盘,右键使用WinRAR等工具解压到当前文件夹或指定文件夹,不能解压到C盘和桌面,否则无法安装;?2、解压之后...
- 现在的win11稳定了吗(win11稳定嘛)
-
windows10更稳定,由于win11刚刚推出没多久,稳定差不够好,兼容性也有待提升,无论是应用还是游戏都会遇到不明程度的问题,因此,在日常的使用过程中,我们还是应当以稳定性为优先,选择win10是...
- xp安装包下载到手机(xp系统安装包)
-
手机是基于ARM架构的处理器,而WindowsXP是基于x86架构的操作系统,因此无法直接在手机上安装WindowsXP。除非您的手机是使用Intel处理器,但这种情况非常罕见。如果您需要在手机上...
- 如何查看硬盘序列号(windows如何查看硬盘序列号)
-
1.打开开始菜单栏,输入【cmd】点击【确定】;2.在命令窗口依次输入【diskpart】-【listdisk】-【selectdisk0】;3.选好要查看的硬盘后,接着输入【detaildi...
- 虚拟机安装win7教程(虚拟机安装win7教程图解)
-
1.首先,下载并安装虚拟机软件,如VMwareWorkstation、VirtualBox等。2.打开虚拟机软件,创建一个新的虚拟机。3.在创建虚拟机的过程中,选择安装Windows7专业版的IS...
- 系统脱敏法的操作程序如何
-
系统脱敏疗法(systematicdesensitization)又称交互抑制法,是由美国学者沃尔普创立和发展的。这种方法主要是诱导求治者缓慢地暴露出导致神经症焦虑、恐惧的情境,并通过心理的放松状态...
- 闪迪u盘低级格式化工具(闪迪u盘格式化分配单元大小)
-
闪迪U盘格式化后速度变慢的可能原因及解决方法如下:文件系统问题:格式化时选择的文件系统类型可能会影响U盘的性能。常见的文件系统类型包括FAT32、NTFS和exFAT等。如果文件系统类型不合适,可能会...
- psd文件下载(psd格式下载网站)
-
1、在photoshop中,不能通过置入的方法来加载PSD文件,因为,通过置入的方法加载PSD文件,它是以合并图层的方法把PSD文件加入,这样,就失去了PSD文件的所有图层信息。 2、在文档中想...
- 宏碁官网下载win7系统(宏碁官方系统)
-
宏基笔记本win8系统换成win7步骤:1、更改bios设置,关闭“SecureBoot”功能,启用传统的“LegacyBoot”。2、制作u启动U盘启动盘,下载win7系统安装包3、设置U盘启动...
- 如何重装系统win7旗舰版32位
-
首先下载制作一个带系统的启动u盘,然后按以下步骤安装:1、首先关闭电脑上面的杀毒软件,2、进入bios选择u盘启动。3、插入启动u盘重新启动电脑4、进入pe系统镜像环节,选择要安装的系统(32位),然...
- 应用程序发生异常0xe0000008
-
先查看一下对应的软件是不是出现了损坏,也可以重装此软件。我们还可以尝试通过修改注册表来解决。按Win+R(或者在开始菜单搜索框输入“运行”)打开运行,然后输入“regedit”回车,打开注册表恢复原来...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
