Python语言常用技巧汇总_python语言的常用语句

liftword4个月前 (02-08)技术文章33

一、列表操作技巧

  1. 列表推导式
   # 传统循环
   squares = []
   for x in range(10):
       squares.append(x**2)

   # 列表推导式(更简洁)
   squares = [x**2 for x in range(10)]
  1. 使用mapfilter
   nums = [1, 2, 3, 4]
   doubled = list(map(lambda x: x*2, nums))       # [2, 4, 6, 8]
   evens = list(filter(lambda x: x%2 == 0, nums)) # [2, 4]
  1. 合并列表
   a = [1, 2]
   b = [3, 4]
   combined = a + b          # [1, 2, 3, 4]
   a.extend(b)               # 直接扩展a

二、字典操作技巧

  1. 合并字典
   d1 = {'a': 1}
   d2 = {'b': 2}
   merged = {**d1, **d2}               # Python 3.5+
   merged = d1 | d2                    # Python 3.9+
  1. 字典推导式
   squares = {x: x**2 for x in range(5)}  # {0:0, 1:1, 2:4, ...}
  1. 默认值处理
   from collections import defaultdict
   d = defaultdict(int)  # 访问不存在的键时返回0
   d['count'] += 1       # 自动初始化为0

三、字符串处理

  1. f-string格式化(Python 3.6+)
   name = "Alice"
   print(f"Hello, {name}!")  # 直接嵌入变量
   print(f"{3.14159:.2f}")   # 保留两位小数 → 3.14
  1. 拆分与连接
   s = "a,b,c"
   parts = s.split(",")       # ['a', 'b', 'c']
   joined = "-".join(parts)   # 'a-b-c'
  1. 快速去空格
   s = "  text  "
   stripped = s.strip()     # "text"

四、函数与Lambda

  1. 默认参数与可变参数
   def greet(name, message="Hi"):
       print(f"{message}, {name}!")

   def sum_all(*args):
       return sum(args)
  1. Lambda表达式
   add = lambda x, y: x + y
   sorted_names = sorted(names, key=lambda x: x.lower())

五、文件操作

  1. 使用with自动关闭文件
   with open("file.txt", "r") as f:
       content = f.read()  # 无需手动调用f.close()
  1. 逐行读取大文件
   with open("large_file.txt") as f:
       for line in f:      # 内存高效
           process(line)

六、代码优化

  1. 生成器节省内存
   def gen_numbers(n):
       for i in range(n):
           yield i  # 惰性计算,适合大数据
  1. 使用enumerate获取索引
   for index, value in enumerate(['a', 'b', 'c']):
       print(index, value)  # 0 a, 1 b, 2 c
  1. zip并行迭代
   names = ["Alice", "Bob"]
   ages = [25, 30]
   for name, age in zip(names, ages):
       print(f"{name} is {age} years old")

七、错误处理

  1. try-except捕获异常
   try:
       result = 10 / 0
   except ZeroDivisionError:
       print("Cannot divide by zero!")
  1. 自定义异常
   class MyError(Exception):
       pass

八、模块与库

  1. 常用内置库
  2. collections:提供deque, Counter等高效数据结构
  3. itertools:迭代工具(排列组合、无限迭代器等)
  4. os/shutil:文件和目录操作
  5. 快速HTTP请求
   import requests
   response = requests.get("https://api.example.com/data")
   print(response.json())

九、其他实用技巧

  1. 交换变量值
   a, b = 1, 2
   a, b = b, a  # a=2, b=1
  1. 条件表达式
   max_val = x if x > y else y
  1. 链式比较
   if 0 < x < 10:  # 等价于 0 < x and x < 10
       print("Valid")

相关文章

概率分布与编程:二项式分布、泊松分布的原理,Python3如何实现

在说二项式分布之前,先来复习一下排列组合的概念,尤其是组合(Combination) C。排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做...

Python 循环的高阶写法:简洁与高效的代码技巧

在 Python 中,循环的高阶写法通常借助一些内置函数、生成器表达式以及高级的库,能够让代码更加简洁、优雅。以下是几种常见的高阶写法:1. 列表推导式(List Comprehension)列表推导...

Python常用算法学习(7) 动态规划,回溯法(原理+代码)-最全总结

引言:从斐波那契数列看动态规划  斐波那契数列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1)练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项...

原理 + 代码|手把手教你用Python实现智能推荐算法

推荐系统将成为未来十年里最重要的变革,社会化网站将由推荐系统所驱动。 --- John Riedl明尼苏达大学教授前言智能推荐和泛的营销完全不同,后者是将产品卖给客户作为最终目标;而智能推荐是以“客户...

大厂面试:排列与组合傻傻分不清楚

一、概念以a、b、c三个字符来举例。1)排列:全排列即字符不能重复,第一位有3种选择,第二位有2种选择,第三位有1种选择,所以最后有3*2*1=6种结果。2)组合:组合不要求三个字符都必须加入结果。求...