
Python以其简洁性和多功能性成为开发者首选工具。本文精选40个实用代码片段,涵盖数据处理、文件操作、字符串处理等场景,帮助高效解决日常开发中的问题,提升效率。
1、检查列表重复元素 使用set()快速判断列表是否存在重复值:
def all_unique(lst):
return len(lst) == len(set(lst))2、变位词检测 利用Counter比较两个字符串的字符组成:
from collections import Counter
def anagram(first, second):
return Counter(first) == Counter(second)3、列表分块 将列表按指定大小切割:
from math import ceil
def chunk(lst, size):
return [lst[i*size:(i+1)*size] for i in range(ceil(len(lst)/size))]4、字典键值对互换 快速交换字典的键与值:
def invert_dict(d):
return {v: k for k, v in d.items()}5、列表扁平化 递归展开嵌套列表:
def deep_flatten(lst):
return [item for sublist in lst for item in (deep_flatten(sublist) if isinstance(sublist, list) else [sublist])]6、安全读取文件 自动处理文件异常:
def read_file(file_path):
try:
with open(file_path, 'r') as f:
return f.read()
except FileNotFoundError:
return "文件不存在"7、创建目录(自动处理重复)
import os
def create_dir(path):
os.makedirs(path, exist_ok=True)8、获取文件大小(字节)
import os
def get_file_size(filepath):
return os.path.getsize(filepath)9、JSON文件读写 简化JSON数据持久化:
import json
def write_json(data, filename):
with open(filename, 'w') as f:
json.dump(data, f)10、临时文件创建 自动清理的临时文件:
import tempfile
with tempfile.TemporaryFile() as tmp:
tmp.write(b'Hello')
tmp.seek(0)
print(tmp.read())11、计算字符串字节大小
def byte_size(string):
return len(string.encode('utf-8'))12、统计元音字母数量
import re
def count_vowels(text):
return len(re.findall(r'[aeiou]', text, re.IGNORECASE))13、首字母小写转换
def decapitalize(string):
return string[0].lower() + string[1:]14、逗号分隔列表转字符串
hobbies = ["篮球", "足球", "游泳"]
print("我的爱好:" + ", ".join(hobbies))15、生成随机密码
import random, string
def gen_password(length=12):
chars = string.ascii_letters + string.digits + string.punctuation
return ''.join(random.choice(chars) for _ in range(length))16、代码执行时间计算
import time
start = time.time()
# 待测试代码
print(f"耗时:{time.time() - start:.4f}秒")17、链式函数调用 根据条件动态选择函数:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
print((subtract if 5 > 3 else add)(5, 3)) # 输出218、无if-else计算器 使用字典映射运算符:
import operator
actions = {'+': operator.add, '-': operator.sub}
print(actions['-'](50, 25)) # 输出2519、变量交换(无需临时变量)
a, b = 1, 2
a, b = b, a20、列表元素频率统计
from collections import Counter
Counter([1, 2, 2, 3, 3, 3]) # {3: 3, 2: 2, 1: 1}21、HTTP服务器(快速启动)
import http.server
PORT = 8000
http.server.SimpleHTTPRequestHandler().run(port=PORT)22、猜数字游戏 基础命令行交互示例:
import random
number = random.randint(1, 100)
while True:
guess = int(input("猜数字(1-100):"))
if guess == number:
break23、词云生成 使用wordcloud库可视化文本:
from wordcloud import WordCloud
text = "Python 高效 简洁 强大"
WordCloud().generate(text).to_file("wordcloud.png")24、定时任务调度
import schedule, time
def job():
print("每5秒执行一次")
schedule.every(5).seconds.do(job)
while True: schedule.run_pending()25、Web爬虫(基础) 使用requests抓取网页:
import requests
response = requests.get(" https://example.com ")
print(response.text[:100])26、检查回文字符串
def is_palindrome(s):
clean_s = ''.join(filter(str.isalnum, s.lower()))
return clean_s == clean_s[::-1]27、列表差异查找
def difference(a, b):
return list(set(a) - set(b))28、合并字典
dict1 = {"a": 1}
dict2 = {"b": 2}
merged = {**dict1, **dict2} # {'a':1, 'b':2}29、Fisher-Yates洗牌算法
from random import shuffle
lst = [1, 2, 3]
shuffle(lst)30、分形图绘制(曼德布罗特集)
import numpy as np
import matplotlib.pyplot as plt
# 代码详见参考
def mandelbrot_vectorized(c, max_iter):
z = np.zeros_like(c, dtype=complex)
mask = np.ones(c.shape, dtype=bool)
for n in range(max_iter):
z[mask] = z[mask]**2 + c[mask]
mask[np.abs(z) > 2] = False
return np.sum(mask, axis=0)31、环境变量读取
import os
print(os.environ.get('PATH'))32、命令行参数解析
import sys
print("第一个参数:", sys.argv)33、类型检查工具
data = 123
print(type(data).__name__) # 'int'34、生成器实现倒计时
def countdown(n):
while n > 0:
yield n
n -= 1
for i in countdown(5): print(i)35、日期时间格式化
from datetime import datetime
print(datetime.now().strftime("%Y-%m-%d %H:%M"))36、正则表达式匹配数字
import re
re.findall(r'\d+', '12 apples, 5 oranges') # ['12', '5']37、集合操作(并集)
a = {1, 2}
b = {2, 3}
print(a.union(b)) # {1, 2, 3}38、错误重试装饰器
import time
def retry(max_tries=3, delay=1):
def decorator(func):
def wrapper(*args, **kwargs):
tries = 0
while tries < max_tries:
try: return func(*args, **kwargs)
except: tries += 1; time.sleep(delay)
return wrapper
return decorator39、单例模式实现
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance40、异步HTTP请求
import aiohttp
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()以上40个Python案例在需要时直接复制修改即可提升开发效率。更多案例可参考https://docs.python.org/3/。
“无他,惟手熟尔”!有需要的用起来。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!😊
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!