Python 常用函数详解
Python 提供了丰富的内置函数和标准库函数,涵盖数据操作、文件处理、系统交互等多个领域。以下从 基础内置函数、数据结构方法、常用模块函数 三个维度进行系统梳理,并结合实际开发经验给出最佳实践。
一、基础内置函数
1. 数学运算
函数 |
描述 |
示例 |
abs(x) |
返回绝对值 |
abs(-5) → 5 |
round(n, d) |
四舍五入到小数点后d位 |
round(3.1415, 2) → 3.14 |
pow(x, y) |
计算x的y次幂(等价于x ** y ) |
pow(2, 3) → 8 |
sum(iter) |
对可迭代对象求和 |
sum([1,2,3]) → 6 |
max(iter) |
返回最大值 |
max([3,1,4]) → 4 |
min(iter) |
返回最小值 |
min("apple") → 'a' (按ASCII值) |
2. 类型转换
函数 |
描述 |
示例 |
int(x) |
转换为整数 |
int("10") → 10 |
float(x) |
转换为浮点数 |
float(3) → 3.0 |
str(x) |
转换为字符串 |
str(True) → 'True' |
list(iter) |
转换为列表 |
list("abc") → ['a','b','c'] |
dict(iter) |
创建字典 |
dict([("a",1), ("b",2)]) → {'a':1, 'b':2} |
set(iter) |
转换为集合(去重) |
set([1,1,2]) → {1,2} |
3. 迭代与序列处理
函数 |
描述 |
示例 |
len(obj) |
返回对象长度 |
len("hello") → 5 |
range(start, end, step) |
生成整数序列 |
list(range(1,5)) → [1,2,3,4] |
enumerate(iter) |
返回索引-元素对 |
list(enumerate(["a","b"])) → [(0,'a'), (1,'b')] |
zip(*iterables) |
并行迭代多个可迭代对象 |
list(zip([1,2], ["a","b"])) → [(1,'a'), (2,'b')] |
sorted(iter) |
返回排序后的列表 |
sorted([3,1,2], reverse=True) → [3,2,1] |
reversed(iter) |
返回反转的迭代器 |
list(reversed([1,2,3])) → [3,2,1] |
4. 高阶函数
函数 |
描述 |
示例 |
map(func, iter) |
应用函数到每个元素 |
list(map(str.upper, ["a","b"])) → ['A','B'] |
filter(func, iter) |
过滤满足条件的元素 |
list(filter(lambda x: x>0, [-1,2,3])) → [2,3] |
lambda args: expr |
匿名函数(快速定义简单逻辑) |
(lambda x,y: x+y)(3,5) → 8 |
二、数据结构方法
1. 字符串(str
)
方法 |
描述 |
示例 |
s.split(sep) |
按分隔符分割字符串 |
"a,b,c".split(",") → ['a','b','c'] |
s.join(iter) |
将可迭代对象连接为字符串 |
",".join(["a","b"]) → "a,b" |
s.replace(old, new) |
替换子字符串 |
"hello".replace("l", "L") → "heLLo" |
s.strip() |
去除两端空白字符 |
" text ".strip() → "text" |
s.startswith(prefix) |
检查是否以指定前缀开头 |
"file.txt".startswith("file") → True |
s.format() |
格式化字符串 |
"{} + {} = {}".format(1,2,3) → "1 + 2 = 3" |
推荐实践:优先使用 f-strings(Python 3.6+): |
|
|
name = "Alice"
print(f"Hello, {name}!") # 输出 "Hello, Alice!"
2. 列表(list
)
方法 |
描述 |
示例 |
lst.append(x) |
添加元素到末尾 |
lst = [1,2]; lst.append(3) → [1,2,3] |
lst.extend(iter) |
合并另一个可迭代对象 |
lst = [1]; lst.extend([2,3]) → [1,2,3] |
lst.insert(i, x) |
在索引i处插入x |
lst = [1,3]; lst.insert(1,2) → [1,2,3] |
lst.pop(i) |
移除并返回索引i的元素 |
lst = [1,2,3]; lst.pop(1) → 2 (列表变为[1,3]) |
lst.sort() |
原地排序(可指定key 和reverse ) |
lst = [3,1,2]; lst.sort() → [1,2,3] |
推荐实践:使用 列表推导式 替代简单循环: |
|
|
squares = [x**2 for x in range(5)] # [0,1,4,9,16]
3. 字典(dict
)
方法 |
描述 |
示例 |
d.get(key, default) |
安全获取键值(避免KeyError) |
d = {"a":1}; d.get("b", 0) → 0 |
d.keys() |
返回所有键的视图 |
list(d.keys()) → ["a"] |
d.values() |
返回所有值的视图 |
list(d.values()) → [1] |
d.items() |
返回键值对视图 |
list(d.items()) → [("a", 1)] |
d.update(other) |
合并另一个字典 |
d.update({"b":2}) → {"a":1, "b":2} |
推荐实践:使用 字典推导式 快速构建字典: |
|
|
squares = {x: x**2 for x in range(3)} # {0:0, 1:1, 2:4}
4. 集合(set
)
方法 |
描述 |
示例 |
s.add(x) |
添加元素 |
s = {1}; s.add(2) → {1,2} |
s.remove(x) |
移除元素(不存在时报错) |
s = {1,2}; s.remove(2) → {1} |
s.discard(x) |
安全移除元素(不存在不报错) |
s.discard(3) |
s.union(t) |
返回并集 |
{1,2}.union({2,3}) → {1,2,3} |
推荐实践:使用集合进行快速去重: |
|
|
unique = list(set([1,2,2,3])) # [1,2,3](顺序可能变化)
三、常用模块函数
1. 文件操作(open
)
# 使用 with 自动管理资源(推荐)
with open("data.txt", "r") as f:
content = f.read() # 读取全部内容
# 写入文件
with open("output.txt", "w") as f:
f.write("Hello\nWorld")
2. 时间处理(time
和 datetime
)
import time
start = time.time() # 获取当前时间戳(秒)
time.sleep(1) # 休眠1秒
from datetime import datetime
now = datetime.now() # 当前时间对象
formatted = now.strftime("%Y-%m-%d %H:%M:%S") # 格式化字符串
3. 系统交互(os
和 sys
)
import os
os.mkdir("new_dir") # 创建目录
files = os.listdir(".") # 列出当前目录文件
import sys
print(sys.argv) # 获取命令行参数
sys.exit(1) # 退出程序并返回状态码
4. 数据序列化(json
)
import json
data = {"name": "Alice", "age": 25}
json_str = json.dumps(data) # 转换为JSON字符串
parsed = json.loads(json_str) # 解析JSON字符串
四、最佳实践与常见陷阱
-
避免重复造轮子
- 优先使用内置函数(如
sum()
替代手动累加循环)。
- 利用标准库(如
collections.defaultdict
处理缺失键)。
-
文件操作资源管理
- 始终使用
with
语句,确保文件正确关闭。
-
注意可变对象的副作用
- 列表的
append()
和 extend()
会修改原对象,而 +
会创建新对象。
-
字符串拼接优化
- 避免在循环中使用
+=
拼接字符串(性能差),改用 str.join()
:
parts = []
for i in range(100):
parts.append(str(i))
result = "".join(parts)
五、总结
类别 |
核心函数/方法 |
典型应用场景 |
数学运算 |
abs() , sum() , round() |
数值计算、统计 |
类型转换 |
int() , str() , list() |
数据清洗、格式转换 |
迭代处理 |
map() , filter() , zip() |
数据转换、多序列操作 |
字符串操作 |
split() , join() , format() |
文本解析、格式化输出 |
数据结构 |
list.append() , dict.get() |
动态数据管理、键值查询 |
文件与系统 |
open() , os.listdir() |
文件读写、目录操作 |
掌握这些常用函数与方法,能够大幅提升代码效率和可维护性。在实际开发中,应结合具体场景灵活选择工具,并遵循 Python 之禅(import this
)倡导的简洁与明确原则。
作者:六七_Shmily