Python中的容器类型

一、基础知识

1、在进行函数调用时,传递的不是变量的值或者引用,而是变量所指对象的引用
2、Python内置类型分为可变和不可变类型两种,可变性会影响一些操作的行为,比如+=
3、对于可变类型,必要时对其进行拷贝操作,能够避免产生意料之外的影响。
4、常见的拷贝方式:copy.copy、推导式、切片操作。
5、使用copy.deepcopy可以进行深拷贝操作。

二、列表与元组

1、使用enumerate可以在遍历列表的同时获取下标。
2、函数的多返回值实际上是一个元组。
3、不存在元组推导式,但可以使用tuple()来将生成器表达式换为元组。
4、元组经常用来表示一些结构化的数据。

三、字典与集合

1、在Python3.7版本前,字典是无序的,之后变为保留数据的插入顺序。
2、使用OrderDict可以在Python3.7之前的版本里获得有序字典。
3、只有可哈希(hashable) 的对象才能存入集合,或者作为字典的键使用。
4、使用有序字典OrderDict可以快速实现有序去重。
5、使用fronzenset可以获得一个不可变的集合对象。
6、集合可以方便进行集合运算,计算交集、并集等。

四、代码可读性

1、具名元组比普通元组可读性更强。
2、列表推导式可以更快速地完成遍历、过滤、处理以及构建新列表操作。
3、不要编写过于复杂的推导式,用朴实的代码替换即可。
4、不要把推导式当做代码量更少的循环,写普通循环即可。

五、代码可维护性技巧

1、当访问的字典键不存在时,可以选择捕获异常或先做判断,优先推荐捕获异常。
2、使用getsetdefault、带参数的pop方法可以简化边界处理逻辑。
3、使用具名元组作为返回值,比普通元组更好扩展。
4、当字典键不存在时,使用defaultdict可以简化处理。
5、用生成器按需返回成员,比直接返回一个结果列表更加灵活,也更省内存。
6、使用动态解包语法可以方便的合并字典。
7、不要在遍历列表的同时修改,否则会出现不可预期的结果。

六、代码性能要点

1、列表的底层实现决定了它的头部操作很慢,deque类型则没有这个问题。
2、当需要判断某个成员在容器中是否存在时,使用字典或集合更快。

参考内容:《Python工匠——案例、技巧与工程实践》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值