Python
是一门灵活且强大的编程语言,拥有丰富的库和强大的社区支持。以下是一些有用的小窍门,可以帮助你提高代码的效率和可读性。
1. 列表推导式(List Comprehensions)
列表推导式可以简化
创建列表的代码。
# 创建一个包含平方数的列表
squares = [x**2 for x in range(10)]
print(squares)
2. 使用 enumerate 获取索引和值
enumerate函数
可以同时获取索引和值,简化代码。
names = ['Alice', 'Bob', 'Charlie']
for index, name in enumerate(names):
print(f"{index}: {name}")
3. 使用 zip 合并两个列表
zip 函数
可以并行迭代
多个列表。
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 90, 88]
for name, score in zip(names, scores):
print(f"{name}: {score}")
4. 使用 collections.Counter 统计元素频率
Counter
是一个方便的工具,用于统计元素出现的次数
。
from collections import Counter
words = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
word_count = Counter(words)
print(word_count)
5. 使用 defaultdict 处理缺失的键
defaultdict
可以为缺失的键提供默认值
,避免 KeyError
。
from collections import defaultdict
d = defaultdict(int)
d['apple'] += 1
print(d)
6. 使用 itertools 处理迭代器
itertools 模块
提供了很多有用的迭代器工具
。
import itertools
# 无限迭代
for i in itertools.count(10, 2):
if i > 20:
break
print(i)
# 笛卡尔积
for combo in itertools.product([1, 2], ['a', 'b']):
print(combo)
7. 使用 functools.lru_cache 缓存函数结果
lru_cache
可以缓存函数的结果
,提高性能。
from functools import lru_cache
@lru_cache(maxsize=32)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(fib(10))
8. 使用 with 语句简化资源管理
with
语句可以确保资源正确地被释放
,例如文件和网络连接。
with open('example.txt', 'r') as file:
contents = file.read()
9. 使用 pathlib 操作文件路径
pathlib
提供了一个面向对象的文件系统路径
处理方法。
from pathlib import Path
# 创建路径对象
path = Path('example.txt')
# 读取文件内容
contents = path.read_text()
print(contents)
# 检查路径是否存在
print(path.exists())
10. 使用 dataclasses 简化数据类
dataclasses
模块提供了一个简便的方法来创建类
来存储数据
。
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
p = Person(name='Alice', age=30)
print(p)
11. 使用 f-string 格式化字符串
f-string 提供了简洁的字符串格式化
方法。
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")