Python数据模式

第四章

一、数据模式

1、更新模式:

针对每一个类型问一个问题:“对象创建成功之后,它的值可以进行更新吗?某些类型允许他们的值进行更新,而另一些则不允许。可变对象允许他们的值被更新,而不可变对象则不允许他们的值被更改。表4.7 列出了支持更新和不支持更新的类型。对于数字等类型,我之前以为是可变类型,其实,当改变了一个变量的值之后,它原来的对象就被丢弃,产生了一个新的对象,然后把新对象的引用赋给该变量。所以这样其实效率上是很慢的。


2、访问模式

序列类型是指容器内的元素按从0 开始的索引顺序访问。一次可以访问一个元素或多个元素, 也就是大家所了解的切片(slice)。字符串,列表和元组都归到这一类。我们前面提到过,Python 不支持字符类型,因此,虽然字符串是简单文字类型,因为它有能力按照顺序访问子字符串,所以也将它归到序列类型。

映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值,它的元素无序存放, 通过一个唯一的key 来访问, 这就是映射类型, 它容纳的是哈希键-值对的集合。


3、存储模式

我们对类型进行分类的第一种方式, 就是看看这种类型的对象能保存多少个对象。Python的类型, 就象绝大多数其它语言一样,能容纳一个或多个值。一个能保存单个字面对象的类型我们称它为原子或标量存储,那些可容纳多个对象的类型,我们称之为容器存储。(容器对象有时会在文档中被称为复合对象,不过这些对象并不仅仅指类型,还包括类似类实例这样的对象)容器类型又带来一个新问题,那就是它是否可以容纳不同类型的对象。所有的Python 容器对象都能够容纳不同类型的对象。表4.6 按存储模型对Python 的类型进行了分类。

字符串看上去像一个容器类型,因为它“包含”字符(并且经常多于一个字符),不过由于Python 并没有字符类型(参见章节4.8),所以字符串是一个自我包含的文字类型。


总体上,如下图所示:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值