健壮的python学习笔记

  • set()

>>>x = set('runoob') >>> y = set('google') 
>>> x, y (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) 
# 重复的被删除 
>>> x & y 
# 交集 set(['o']) 
>>> x | y 
# 并集 set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) 
>>> x - y 
# 差集 
set(['r', 'b', 'u', 'n'])
  • with

with open  as file
# 相当于
try 
final file.close()
  • assert

assert true/false ,"string"
# 如果false ,抛出错误 提示 为 string
  • 下划线

单下划线函数,外部无法import *

类里的双下划线,无法被外部利用,
前后双下划线可以,但是不要用,因为python版本更新后作者会用

_ 表示没有赋值的最后一个值

数据结构 列表优化

  • 列表推导特别之处

  1. 列表推导更快

  1. range不占内存

“,”.join(str(n) for n in range(100))
  • 使用列表推导而不是map(),filter()

def is_odd_number(number: int) -> bool:
	return number % 2 == 1
odd_numbers = filter(is_odd_number,nums)
odd_numbers_doubled = list(map(lambda x: x*2,odd_numbers))
# https://www.runoob.com/python/python-func-map.html
  1. 负索引

  1. 确定可迭代性 all 和 any

# 内置函数
sum([1,2,3])

# all和any,iterable 是可迭代对象
def has_zero(iterable):
	return not all(iterable)
  1. 使用 * 运算符操作剩余序列

  1. array.array 获取基本类型数组

强类型(即不可以改变元素类型)

  1. 带str的不可变unicode 字符数组

  1. 带有bytearray的单字节可变序列

bytes(二进制形式存储数据) 不可变

![[Pasted image 20230206163729.png]]

  1. 使用字节作为不可变的单字节序列

高效字典

  • 默认参数

my_car = cars_config.get("volvo123","CCC")
  • 使用defaultdict

from collections import defaultdict
_dict = defaultdict(list)

![[Pasted image 20230206170239.png]]

  • 字典模拟 Switch-case(实现多路复用)

面向对象开发原则:修改要封闭,扩展要开放

python 3.10

  • 字典推导优化dict构造

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值