百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

了解 Python 最常见的内置函数(python常用内置函数表)

off999 2024-09-14 07:11 30 浏览 0 评论

Python 的内置函数基础

Python 的内置函数是该语言不可或缺的一部分,无需额外的库即可提供基本功能。这些函数始终可用,无需导入任何模块即可使用。它们是在 C for CPython(标准 Python 实现)中实现的,这确保了它们针对性能进行了高度优化。

为什么存在内置函数

内置函数的存在使语言更加用户友好和高效。它们提供了一种无需编写其他代码即可执行常见任务的方法,这有助于开发人员节省时间并减少出错的可能性。内置函数还通过提供标准化的操作执行方式来提高代码的可读性和可维护性。这种一致性使开发人员能够快速理解和使用其他人编写的代码。

此外,内置函数封装了复杂的逻辑和优化,使开发人员更容易高效地执行操作,而无需了解底层实现细节。这种抽象对初学者特别有益,因为它允许他们专注于学习语言和解决问题,而不是担心性能和优化。

如何使用内置函数

几乎每个 Python 程序都使用内置函数。它们提供了广泛的功能,从基本的输入/输出操作到复杂的数据操作。以下是如何使用内置函数的一些关键方面:

  1. 基本操作: len()type()print() 函数用于基本操作,例如显示输出、确定对象长度和检查变量类型。
  2. 数据操作: max()min()sorted()sum() 函数用于执行各种数据操作,例如计算总和、查找最大值和最小值以及对数据进行排序。
  3. 函数式编程:像 、 filter()reduce() (来自 functools 模块)这样的 map() 函数通过允许开发人员将函数应用于序列和过滤数据来支持函数式编程范式。
  4. 迭代和聚合:、 enumerate()range()zip() 函数用于迭代和聚合,从而更轻松地遍历数据和使用索引。

使用内置函数的好处

  1. 效率:内置函数在 C for CPython 中实现,使其非常高效。它们通常比用纯 Python 编写的等效代码更快地执行操作。
  2. 可靠性:内置函数经过全面测试并被广泛使用,这意味着与自定义实现相比,它们更可靠且不易出现错误。
  3. 可读性:使用内置函数使代码更具可读性和可理解性。其他开发人员更容易阅读和理解使用标准函数的代码。
  4. 方便:内置功能提供了一种执行常见任务的便捷方式。开发人员无需为经常执行的任务编写额外的代码。

关键内置功能的实现和优化

在这里,将看看 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 10

max()和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() 每个元组的第二个元素转换为大写。最终结果是满足指定条件的转换元组列表。

相关推荐

Python函数参数和返回值类型:让你的代码更清晰、更健壮

在Python开发中,你是否遇到过这些抓狂时刻?同事写的函数参数类型全靠猜调试两小时发现传了字符串给数值计算函数重构代码时不知道函数返回的是列表还是字典今天教你两招,彻底解决类型混乱问题!让你的...

有公司内部竟然禁用了python开发,软件开发何去何从?

今天有网友在某社交平台发文:有公司内部竟然禁止了python开发!帖子没几行,评论却炸锅了。有的说“太正常,Python本就不适合做大项目”,还有的反驳“飞书全员用Python”。暂且不说这家公司...

写 Python 七年才发现的七件事:真正提高生产力的脚本思路

如果你已经用Python写了不少脚本,却总觉得代码只是“能跑”,这篇文章或许会刷新你对这门语言的认知。以下七个思路全部来自一线实战,没有花哨的概念,只有可落地的工具与习惯。它们曾帮我省下大量无意义...

用Python写一个A*搜索算法含注释说明

大家好!我是幻化意识流。今天我们用Python写一个A*搜索算法的代码,我做了注释说明,欢迎大家一起学习:importheapq#定义搜索节点类,包括当前状态、从初始状态到该状态的代价g、从该状态...

使用python制作一个贪吃蛇游戏,并为每一句添加注释方便学习

今天来设计一个贪吃蛇的经典小游戏。先介绍下核心代码功能(源代码请往最后面拉):游戏功能:-四个难度等级:简单(8FPS)、中等(12FPS)、困难(18FPS)、专家(25FPS)-美...

Python 之父 Guido van Rossum 宣布退休

Python之父GuidovanRossum在推特公布了自己从Dropbox公司离职的消息,并表示已经退休。他还提到自己在Dropbox担任工程师期间学到了很多东西——Python的类型注解(T...

4 个早该掌握的 Python 类型注解技巧

在Python的开发过程中,类型注解常常被忽视。但当面对一段缺乏类型提示、逻辑复杂的代码时,理解和维护成本会迅速上升,极易陷入“阅读地狱”。本文整理了4个关于Python类型注解的重要技巧...

让你的Python代码更易读:7个提升函数可读性的实用技巧

如果你正在阅读这篇文章,很可能你已经用Python编程有一段时间了。今天,让我们聊聊可以提升你编程水平的一件事:编写易读的函数。请想一想:我们花在阅读代码上的时间大约是写代码的10倍。所以,每当你创建...

Python异常模块和包

异常当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG例如:以`r`方式打开一个不存在的文件。f=open('...

别再被 return 坑了!一文吃透 Python return 语句常见错误与调试方法

Pythonreturn语句常见错误与调试方法(结构化详解)一.语法错误:遗漏return或返回值类型错误错误场景pythondefadd(a,b):print(a+b)...

Python数据校验不再难:Pydantic库的工程化实践指南

在FastAPI框架横扫Python后端开发领域的今天,其默认集成的Pydantic库正成为处理数据验证的黄金标准。这个看似简单的库究竟隐藏着哪些让开发者爱不释手的能力?本文将通过真实项目案例,带您解...

python防诈骗的脚本带注释信息

以下是一个简单但功能完整的防诈骗脚本,包含URL检测、文本分析和风险评估功能。代码结构清晰,带有详细注释,适合作为个人或家庭防诈骗工具使用。这个脚本具有以下功能:文本诈骗风险分析:检测常见诈骗关键...

Python判断语句

布尔类型和比较运算符布尔类型的定义:布尔类型只有两个值:True和False可以通过定义变量存储布尔类型数据:变量名称=布尔类型值(True/False)布尔类型不仅可以自行定义,同时也可通过...

使用python编写俄罗斯方块小游戏并为每一句添加注释,方便学习

先看下学习指导#俄罗斯方块游戏开发-Python学习指导##项目概述这个俄罗斯方块游戏是一个完整的Python项目,涵盖了以下重要的编程概念:-面向对象编程(OOP)-游戏开发基础-数据...

Python十大技巧:不掌握这些,你可能一直在做无用功!

在编程的世界里,掌握一门语言只是起点,如何写出优雅、高效的代码才是真功夫。Python作为最受欢迎的编程语言之一,拥有简洁明了的语法,但要想真正精通这门语言,还需要掌握一些实用的高级技巧。一、列表推导...

取消回复欢迎 发表评论: