
在 Python 中,有许多语法和库的高级用法可以显著提升代码的简洁性、执行效率和维护性。以下为您整理的 213个独立且实用的 Python 技巧,每个都包含了具体的代码示例:
🌟🌟🌟 替代 for 循环和 append 操作,提高可读性和性能,且可用于过滤条件。
# 传统循环squares = []for i in range(10):squares.append(i ** 2)# 列表推导式squares = [i ** 2 for i in range(10)]
🌟🌟🌟 比 dict()循环函数更简洁,特别适合根据列表元素映射为键值对。
nums = [1, 2, 3, 4]# 将数值翻倍并转为字典doubled = {x: x * 2 for x in nums}
*args与 **kwargs解包🌟🌟🌟 在函数调用中灵活传递参数,或在函数定义时接收任意数量的参数。
# 函数定义支持可变参数def print_items(*args, **kwargs):for arg in args:print(arg)for kw in kwargs.items():print(f"{kw[0]}: {kw[1]}")# 调用时print_items(1, 2, 3, name="Alice", age=20)
is与 值判断用 == 🌟🌟🌟 使用 is 判断内存引用(身份)是否同源,使用 == 判断值是否相等。
a = [1]b = [1]c = aa == b # 为 True (值相等)a is b # 为 False (不同对象)c is a # 为 True (同一个对象)
with进行上下文管理🌟🌟🌟 自动处理资源释放(如文件、数据库连接),即使发生异常也不会漏掉清理。
# 资源自动关闭withopen('example.txt', 'r', encoding='utf-8') as f:content = f.read()# 即使下面出错,文件也会自动关闭
set()去重 🌟🌟🌟 集合 (set) 是去除列表中重复项最高效的方式(时间复杂度接近 O(1))。
numbers = [1, 2, 2, 3, 1, 4]unique_nums = list(set(numbers))print(unique_nums)# 输出# [1, 2, 3, 4]
enumerate()获取索引🌟🌟🌟 遍历列表同时获取索引,无需手动维护计数变量。
items = ['apple', 'banana', 'cherry']# 索引,值for i, item in enumerate(items):print(f"索引{i}:{item}")# 输出# 索引0:apple# 索引1:banana# 索引2:cherry
zip()合并多个迭代器🌟🌟🌟 将多个序列并行遍历,非常适用于多列数据处理。
# 两个序列,应相等长度,否则zip会以短的序列为主first = [1, 2, 3]second = ['a', 'b', 'c']for item1, item2 in zip(first, second):print(item1, item2)# 输出# (1,‘a’)# (2, 'b')# (3, 'c')
f-string(格式字符串) 🌟🌟🌟 Python 3.6+ 推荐的格式化字符串方式,性能优于 % 格式化,支持表达式。
name = "Alice"age = 25# 简洁的格式化print(f"{name} is {age} years old.")# 支持在格式化中使用表达式print(f"Square of {2*2} is {2*2**2}")
lambda创建匿名函数 🌟🌟🌟 适用于临时函数、高阶函数回调或排序键值定义。
numbers = [1, 2, 3, 4, 5]# 定义一个平方函数square = lambda x: x ** 2# 作为列表排序键sorted_numbers = sorted(numbers, key=lambda x: -x)
if __name__ == '__main__'检查🌟🌟🌟 防止脚本被作为模块导入时执行主逻辑代码。
import sysdef main():# 实际业务逻辑print("程序开始执行")# 检查当前是否在命令行中运行if __name__ == '__main__':main()
try...except...else... 强化处理逻辑 🌟🌟🌟 使用 else 块捕获异常后执行的代码,逻辑更清晰。
try:value = 10result = 5 / valueexcept ZeroDivisionError:print("除零错误")else:# 只有没有异常时执行print(result)
{**d1, **d2} 🌟🌟🌟 Python 3.5+ 支持字典解包与合并,比 dict.update()更简洁。
# 有共同key的字典d1 = {'a': 1, 'b': 2}d2 = {'c': 3, 'b': 4}# 合并后 d2 的键值会覆盖 d1 的同名键值merged = {**d1, **d2}print(merged)# 输出 {'a': 1, 'b': 4, 'c': 3}
往期精彩:
1、Python入门合集
2、Pandas入门合集
它是数字世界里的一把杀猪刀
却总能巧夺天工
它的世界是纯粹0、1组合
却总能创造无尽幻想
......
本公众号关注数据价值分析、编程学习,将不定期更新社会热点数据分析结果、编程技巧,分享数据分析工具、方法、学习等内容,欢迎有兴趣的小伙伴加入。