python高级编程改造_Python高级编程-collections模块(番外篇)

Python高级编程-collections模块(番外篇)

x.1 collections模块介绍

from collections import *

from collections.abc import *

"""

提供了更加高级的数据结构

"""

x.2 tuple的功能

不可变,iterable

拆包 # name, *others = ("coder", 20, 175)

tuple不可变性不是绝对的 # ("name", [20, 175])

tuple比list好的地方

immutable的重要性:

​性能优化:指出元素全部为immutable的tuple会作为常量在编译时确定,因此产生了如此显著的速度差异

​线程安全

​可以作为dict的key

​拆包特性

如果要拿C语言来类比,Tuple对应的是struct,而List对应的是array

x.3 nametuple 详解

from collections import nametuple

User = nametuple("User", ["name", "age", "height"])

user = User(name="booby", age=29, height=175)

print(user.age, user.name, user.height)

"""

为什么不用类封装,而用nametuple?

因为使用nametuple会比class少去很多默认属性,更加节约空间。

"""

user_tuple = ("bobby", 29, 175)

user = User(*user_tuple) # User._make(user_tuple)

print(user._asdict())

name, age, height = user

x.4 defaultdict 功能详解

from collections import defaultdict

# 统计数量

user_dict

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值