码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型总结:可变不可变

时间:2017-12-02 17:54:47      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:元组   重复   ace   rem   microsoft   remove   需要   用法   修改   

字符串、整数等都是不可变的,而list是可变的,tuple不可变。dict和set都是可变的

 

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

>>> a = ‘abc‘
>>> b = a.replace(‘a‘, ‘A‘)
>>> b
‘Abc‘
>>> a
‘abc‘

 

谈谈pop()和remove()2个方法的用法,前者是根据索引删除,后者是根据元素。

所以类似dict和set等无序的用remove()方法删除

 

tuple:另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。

dict和set都无序

 

dict:在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。

 

set:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

 

tuple虽然是不变对象,但试试把(1, 2, 3)(1, [2, 3])放入dict或set中,并解释结果。

 

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

 

数据类型总结:可变不可变

标签:元组   重复   ace   rem   microsoft   remove   需要   用法   修改   

原文地址:http://www.cnblogs.com/hzchh/p/7954434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!