python

📅 2026-08-10 👍 0点赞 💬 0 条评论

让代码优雅又高效:10个必会的Python实用技巧与示例

Python之所以强大,不仅因为它语法简单,更因为它提供了许多“开箱即用”的高级特性。无论是数据清洗、自动化办公,还是后端开发,掌握这些技巧能让你的代码从“能跑”变成“漂亮且高效”。

以下是我整理的10个高频Python实用技巧,附带场景示例,建议收藏备用。

1. 列表推导式:一行代码搞定循环

这是Python最具代表性的特性之一。与其写繁琐的

"for"循环,不如用列表推导式,代码更简洁,执行速度通常也更快。

场景: 将一个列表中所有数字平方,并过滤掉奇数。

❌ 普通写法:

nums = [1, 2, 3, 4, 5, 6]

result = []

for n in nums:

    if n % 2 == 0:

        result.append(n ** 2)

print(result)  # [4, 16, 36]

✅ 优雅写法:

nums = [1, 2, 3, 4, 5, 6]

result = [n ** 2 for n in nums if n % 2 == 0]

print(result)  # [4, 16, 36]

2. 解包(Unpacking):优雅地交换变量

还在用临时变量交换两个值吗?Python的解包功能可以直接赋值。

场景: 交换变量、提取列表首尾元素。

# 交换变量

a, b = 1, 2

a, b = b, a

print(a, b)  # 2 1

# 提取列表首尾

data = [1, 2, 3, 4, 5]

first, *middle, last = data

print(first)  # 1

print(middle) # [2, 3, 4] (注意这里得到的是列表)

print(last)   # 5

3. 枚举(Enumerate):告别手动计数

在遍历列表时需要索引?别再用

"range(len(list))"了,

"enumerate"才是正解。

场景: 打印列表元素及其下标。

❌ 普通写法:

fruits = ["apple", "banana", "orange"]

for i in range(len(fruits)):

    print(i, fruits[i])

✅ 优雅写法:

fruits = ["apple", "banana", "orange"]

for index, value in enumerate(fruits, start=1):  # start参数可设置起始索引

    print(index, value)

# 输出:

# 1 apple

# 2 banana

# 3 orange

4. 字典合并:Python 3.9+ 的黑魔法

以前合并字典需要用

"update()"方法或解包,Python 3.9引入了专门的合并运算符

"|"。

场景: 合并两个配置字典。

dict1 = {"name": "Alice", "age": 25}

dict2 = {"age": 26, "city": "Beijing"}  # age键重复,后者覆盖前者

# Python 3.9+

merged_dict = dict1 | dict2

print(merged_dict)  # {'name': 'Alice', 'age': 26, 'city': 'Beijing'}

# 兼容旧版本的写法

merged_dict_old = {**dict1, **dict2}

5. 集合(Set)去重:极速过滤重复项

当你需要去除列表中的重复元素,并且不关心顺序时,

"set"(集合)是最快的方案。

场景: 统计文章中不重复的单词数。

words = ["python", "java", "python", "c++", "java", "python"]

unique_words = set(words)

print(unique_words)       # {'c++', 'java', 'python'}

print(len(unique_words))  # 3

# 如果想转回列表

unique_list = list(unique_words)

6. 

"defaultdict":再也不怕KeyError

在使用字典统计频次时,经常需要判断键是否存在。

"collections.defaultdict"可以自动初始化键值。

场景: 统计每个字母出现的次数。

❌ 普通写法:

letters = "abracadabra"

count = {}

for letter in letters:

    if letter not in count:

        count[letter] = 0

    count[letter] += 1

✅ 优雅写法:

from collections import defaultdict

letters = "abracadabra"

count = defaultdict(int)  # int()默认返回0

for letter in letters:

    count[letter] += 1

print(dict(count))  # {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}

7. 

"with"语句:自动管理资源

操作文件或数据库连接时,忘记关闭资源会导致内存泄漏。

"with"(上下文管理器)能自动帮你处理善后工作。

场景: 读写文件。

❌ 危险写法(可能忘记close):

file = open("test.txt", "w")

file.write("Hello World")

file.close()

✅ 优雅写法:

with open("test.txt", "w", encoding="utf-8") as f:

    f.write("Hello World")

# 离开with代码块,文件会自动关闭,即使发生异常也会关闭

8. 三元运算符:简化条件赋值

将简单的

"if-else"逻辑压缩在一行内。

场景: 根据条件赋值。

age = 20

# 普通写法

if age >= 18:

    status = "Adult"

else:

    status = "Minor"

# 优雅写法

status = "Adult" if age >= 18 else "Minor"

print(status)

9. F-String:格式化字符串的终极武器

Python 3.6引入的f-string是目前最可读、最简洁且速度最快的字符串格式化方法。

场景: 拼接字符串和变量。

name = "Bob"

score = 95.5678

# 旧写法

print("Name: %s, Score: %.2f" % (name, score))

print("Name: {}, Score: {}".format(name, score))

# F-String写法 (推荐)

print(f"Name: {name}, Score: {score:.2f}")  # 支持直接格式化数字

print(f"{name=}, {score=}")  # Python 3.8+,调试神器,直接输出变量名和值

# 输出: name=Bob, score=95.5678

10. 虚拟环境(Virtual Environment):项目的隔离舱

这是项目管理的必备技巧。不同项目依赖不同的库版本,全局安装会导致冲突。

场景: 为新项目创建独立环境。

# 1. 创建虚拟环境(在项目目录下运行)

python -m venv venv

# 2. 激活环境

# Windows:

venv\Scripts\activate

# Mac/Linux:

source venv/bin/activate

# 3. 此时命令行前面会出现 (venv) 标识

# 现在pip安装的包只会装在当前目录

pip install requests

# 4. 退出环境

deactivate

总结与建议

技巧 核心价值 适用场景

列表推导式 简洁、高效 数据筛选、转换

解包 代码可读性 变量交换、数据拆分

Enumerate 同时获值取索引 循环遍历

F-String 直观、速度快 字符串拼接、日志输出

Defaultdict 逻辑简化 计数、分组

进阶建议:

如果你想进一步提升代码质量,可以去了解一下列表推导式与生成器表达式的区别(内存优化),以及装饰器(Decorator)(代码复用)。

💬 评论列表 (0)

暂无评论,快来抢沙发吧!

发表评论

×