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

liftword5个月前 (02-08)技术文章35

一、列表操作技巧

  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均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做...

面对2000笔金额记录的凑数最优问题,你学了python竟然束手无策?

好不容易学了一门编程语言 Python,又懂一点 Excel 操作,感觉自己无所不能了。直到有一天遇到了凑数最优问题,看似很简单,但始终无法解决。凑数问题:在很多数值数据当中,不限制个数(或一些限制条...

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

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

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。比如计算1至100的整数和,我们用while来实现:sum = 0 x = 1 while True...

python自动化测试实例—保险测试场景中的应用

最近公司做保险项目的测试,发现保险测试是一件非常繁琐的事情,特别是保费那块。遇到的保险场景是这样的:要测一款重疾险,不同年龄段的人保费会不相同,有或是没有社保,保费不相同,还有各种附加险选择买或者是不...

12岁男孩一个暑假卖NFT「表情包」赚了250万

梦晨 发自 凹非寺量子位 报道 | 公众号 QbitAI12岁男孩在暑假里画了一系列画,在区块链上以NFT的形式出售,赚到的虚拟货币价值相当于250万人民币!这些画倒也不是什么精致的艺术品,只是一系列...