非常好的Python小窍门

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.")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值