当前位置: 首页 > news >正文

Python内置方法干货总结

如果你还在为提升Python代码能力发愁,那么掌握内置方法就是你的捷径!很多初学者和进阶者忽略了这一“宝藏”,其实,Python的内置方法不仅能让你代码更简洁,还能大幅提升开发效率。今天,咱们就来一次系统梳理!

你是否也遇到过这样的困扰:明明逻辑正确,但代码总是又长又乱?为什么那些大佬们写的Python代码总是又短又精炼?秘诀就在于——善用Python内置方法!那么,常见且高效的内置方法究竟有哪些?我们该如何正确应用?

Python内置方法如何简化你的开发?哪些方法是每个程序员必须掌握的?如何用它们写出更优雅的代码?

Python提供了丰富的内置方法(built-in functions),这些方法无需导入任何模块即可直接使用。以下是一些最常用和重要的内置方法分类总结:

图片

 

图片

基础类型相关

数值处理

- `abs(x)` - 返回绝对值

- `round(number[, ndigits])` - 四舍五入

- `divmod(a, b)` - 返回商和余数的元组

- `pow(x, y[, z])` - 返回x的y次幂(可模z)

- `bin(x)` - 将整数转换为二进制字符串

- `hex(x)` - 将整数转换为十六进制字符串

- `oct(x)` - 将整数转换为八进制字符串

字符处理

- `chr(i)` - 返回Unicode码位为i的字符

- `ord(c)` - 返回字符c的Unicode码位

- `str(object)` - 将对象转换为字符串

图片

集合操作

序列处理

- `len(s)` - 返回对象长度

- `max(iterable, *[, key, default])` - 返回最大值

- `min(iterable, *[, key, default])` - 返回最小值

- `sum(iterable[, start])` - 求和

- `sorted(iterable, *, key=None, reverse=False)` - 返回排序后的列表

- `reversed(seq)` - 返回反向迭代器

- `enumerate(iterable, start=0)` - 返回枚举对象

- `zip(*iterables)` - 聚合多个迭代器

- map() - 批量应用函数

案例

len() - 获取对象长度

场景:计算字符串、列表或字典的元素数量。


代码

text = "Hello, Python!"
numbers = [1, 2, 3, 4]
data = {"a": 1, "b": 2}
print(len(text))  # 输出: 13
print(len(numbers))  # 输出: 4
print(len(data))  # 输出: 2

说明:len()适用于任何可迭代对象,快速统计长度,常用于循环控制或数据验证。

sorted() - 排序可迭代对象

场景:对列表、元组等进行升序或降序排序。


代码

numbers = [3, 1, 4, 1, 5]
sorted_numbers = sorted(numbers)  # 升序: [1, 1, 3, 4, 5]
reverse_numbers = sorted(numbers, reverse=True)  # 降序: [5, 4, 3, 1, 1]
names = ["Bob", "Alice", "Charlie"]
sorted_names = sorted(names, key=len)  # 按长度排序: ['Bob', 'Alice', 'Charlie']

说明:sorted()返回新列表,支持自定义key函数(如按长度排序)和reverse参数,适合数据整理。

map() - 批量应用函数

场景:对可迭代对象中的每个元素应用函数。
代码

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))  # [1, 4, 9, 16]
strings = ["apple", "banana"]
upper = list(map(str.upper, strings))  # ['APPLE', 'BANANA']

说明:map()结合lambda或内置函数,高效处理批量操作,比循环更Pythonic。

enumerate() - 同时获取索引和值

场景:遍历列表时需要索引。


代码

fruits = ["apple", "banana", "orange"]
for index, fruit in enumerate(fruits, start=1):print(f"{index}: {fruit}")
# 输出:
# 1: apple
# 2: banana
# 3: orange

说明:enumerate()避免手动计数,start参数可自定义起始索引。

sum() - 计算总和

场景:求列表或生成器的数值总和。
代码

numbers = [1, 2, 3, 4]
total = sum(numbers)  # 10
weighted = sum(x * 2 for x in numbers)  # 20

说明:sum()高效计算总和,支持生成器,减少内存占用。

迭代器/生成器

- `iter(object[, sentinel])` - 返回迭代器对象

- `next(iterator[, default])` - 返回迭代器的下一项

- `range(stop)` / `range(start, stop[, step])` - 生成整数序列

zip() - 并行迭代多个序列

场景:同时遍历多个列表,生成键值对或配对数据。
代码

names = ["Alice", "Bob"]
scores = [90, 85]
pairs = list(zip(names, scores))  # [('Alice', 90), ('Bob', 85)]
dictionary = dict(zip(names, scores))  # {'Alice': 90, 'Bob': 85}

说明:zip()常用于创建字典或并行处理数据,节省代码且直观。

图片

类型转换

- `int(x[, base])` - 转换为整数

- `float(x)` - 转换为浮点数

- `bool(x)` - 转换为布尔值

- `list(iterable)` - 转换为列表

- `tuple(iterable)` - 转换为元组

- `set(iterable)` - 转换为集合

- str.join() - 拼接字符串

- `dict(**kwarg)` / `dict(mapping, **kwarg)` / `dict(iterable, **kwarg)` - 创建字典

str.join() - 拼接字符串

场景:将列表元素拼接为字符串。
代码

words = ["Hello", "Python", "World"]
sentence = " ".join(words)  # "Hello Python World"
csv = ",".join(map(str, [1, 2, 3]))  # "1,2,3"

说明:join()比字符串拼接(如+)更高效,适合生成CSV或文本。

图片

输入输出

- `print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)` - 打印输出

- `input([prompt])` - 获取用户输入

图片

对象操作

- `id(object)` - 返回对象标识值(内存地址)

- `type(object)` - 返回对象类型

- `isinstance(object, classinfo)` - 检查对象是否是类的实例

- `issubclass(class, classinfo)` - 检查类是否是另一个类的子类

- `hasattr(object, name)` - 检查对象是否有属性

- `getattr(object, name[, default])` - 获取对象属性

- `setattr(object, name, value)` - 设置对象属性

- `delattr(object, name)` - 删除对象属性

- `dir([object])` - 返回对象的属性列表

- `vars([object])` - 返回对象的__dict__属性

- `callable(object)` - 检查对象是否可调用

isinstance() - 类型检查

场景:验证对象类型,确保代码健壮性。


代码

value = "123"
if isinstance(value, (int, float)):print("Numeric value")
else:print("Non-numeric")  # 输出: Non-numeric

说明:isinstance()支持多类型检查,常用于输入验证。

图片

函数式编程

- `map(function, iterable, ...)` - 应用函数到每个元素

- `filter(function, iterable)` - 过滤元素

- `reduce(function, iterable[, initializer])` - 累积计算(需从functools导入)

- `lambda` - 创建匿名函数

filter() - 筛选符合条件的元素

场景:从可迭代对象中提取满足条件的元素。
代码

numbers = [1, 2, 3, 4, 5]
evens = list(filter(lambda x: x % 2 == 0, numbers))  # [2, 4]

说明:filter()结合lambda函数,快速筛选数据,优于循环。

图片

其他实用方法

- `help([object])` - 调用内置帮助系统

- `eval(expression[, globals[, locals]])` - 执行字符串表达式

- `exec(object[, globals[, locals]])` - 执行动态Python代码

- `globals()` - 返回当前全局符号表

- `locals()` - 返回当前局部符号表

- `hash(object)` - 返回对象的哈希值

- `memoryview(object)` - 返回内存视图对象

- `staticmethod(function)` - 将方法转换为静态方法

- `classmethod(function)` - 将方法转换为类方法

- `property(fget=None, fset=None, fdel=None, doc=None)` - 创建属性

- `super([type[, object-or-type]])` - 调用父类方法

-  any() / all() - 逻辑判断

- `open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)` - 打开文件

any() / all() - 逻辑判断

场景:检查可迭代对象是否满足条件。
代码

numbers = [1, -2, 3, -4]
has_positive = any(x > 0 for x in numbers)  # True
all_positive = all(x > 0 for x in numbers)  # False

说明:any()检查至少一个元素为真,all()要求所有元素为真,适合快速验证条件。

图片

注意事项

1. 这些内置方法都是Python解释器直接提供的,无需导入

2. 部分方法(如`max`, `min`, `sorted`)可以接受key函数来自定义排序/比较逻辑

3. 使用`eval`和`exec`时要格外小心,可能带来安全风险

4. Python3中许多内置方法返回的是迭代器而非列表(如`map`, `filter`, `zip`等)

社会 phenomenon分析

Python的普及使其成为数据科学、AI和Web开发的支柱语言。根据Stack Overflow 2024开发者调查, Python是全球最受欢迎的编程语言之一,其内置方法的简单性和强大性是关键原因。开发者社区(如Reddit的r/Python)讨论显示,内置方法如map()、zip()和enumerate()极大提高了代码效率,减少了重复劳动。
在企业场景中,内置方法广泛应用于数据处理(如pandas结合map())和自动化脚本(如os模块与join())。开源项目的兴起进一步凸显了代码简洁性的重要性,GitHub上的Python库(如numpy) 常利用内置方法优化性能。这些方法不仅是技术工具,还代表了Pythonic的编程哲学——简洁、优雅、高效。

掌握这些内置方法可以大大提高Python编程效率和代码简洁性。

总结

在如今AI和大数据加速发展的时代,代码质量与开发速度变得前所未有的重要。越来越多的企业在招聘Python开发时,特别看重应聘者对基础能力的掌握,比如内置方法的熟练运用。这不仅是技术实力的体现,更是对工程思维的考验。

Python内置方法是开发者手中的“魔法棒”,从len()到zip(),它们简化了复杂任务,让代码更简洁、优雅。掌握这些方法,不仅提升开发效率,还让你更贴近Python的哲学——用最少代码实现最大价值。无论是数据分析、Web开发还是自动化脚本,这些内置方法都是你的得力助手。拥抱它们,你的编程之路将更加顺畅,效率一飞冲天!

基础不牢,地动山摇;内置方法,是写出大师级代码的第一步。

内置方法,Python之魂——简洁代码,效率无穷!

http://www.xdnf.cn/news/199675.html

相关文章:

  • [OS_9] C 标准库和实现 | musl libc | offset
  • 关于消息队列的一些事~
  • LeetCode【剑指offer】系列(图和其他篇)
  • 某校多档口食堂就餐行为可视化分析-Tableau
  • MySQL基础篇 | 1-数据库概述与MySQL安装
  • 常见算法的总结与实现思路
  • 【补题】ACPC Kickoff 2025 F. Kinan The Bank Robber
  • tensor 的计算操作
  • C#核心知识
  • Allegro23.1新功能之如何解冻动态铜皮操作指导
  • Druid监控sql导致的内存溢出
  • [Windows] MousePlus 5.5.9
  • 盈飞无限再出重磅新品 AI版质量智能双星璀璨
  • QML文件中如何创建QML对象并打开
  • 机器学习day3 - KNN的api调用
  • Vue3 项目中 Pinia 与 JavaScript 循环依赖问题深度解析
  • 三小时快速上手TypeScript之接口
  • SoapUi测试1——REST(WebAPi、Json协议/HTTP、Post通讯方式)接口测试
  • 【AI 工业应用 】AI大模型在工业领域(CAD等)的前景与实战
  • 1.8空间几何与场论
  • OpenGL进阶系列21 - OpenGL SuperBible - blendmatrix 例子学习
  • [26] cuda 应用之 nppi 实现图像格式转换
  • 企业 AD 域安全10大风险场景解析
  • Redis常用数据结构解析:从原理到实战应用
  • Python(14)推导式
  • Linux文件的一般权限
  • 2799. 统计完全子数组的数目
  • [Spring] Sentinel详解
  • Linux常见基础命令
  • i/o复用函数的使用——epoll