首页 > 编程语言 > 详细

python----基础之可变、不可变数据类型与hash

时间:2019-02-26 17:30:28      阅读:217      评论:0      收藏:0      [点我收藏+]

可变与不可变类型

截止到目前,已经写了很多数据类型了:数字类型,字符串类型,列表类型,元祖类型,字典类型,集合类型。

在python中,我们对数据类型还有另外一种分类方式,我们把数据类型分为可变数据类型和不可变数据类型。

可变、不可变类型指的是id不变,type不变的前提下,value是否可变。

我们先来看看分类情况:

技术分享图片

列表:

>>> w = [1,2,3,4,5]
>>> id(w)
31768864
>>> w[1]=22.2
>>> w
[1, 22.2, 3, 4, 5]
>>> id(w)
31768864

字典:

>>> a = {"name":"ike","age":18}
>>> a
{name: ike, age: 18}
>>> id(a)
31318400
>>> a[age]=28
>>> a
{name: ike, age: 28}
>>> id(a)
31318400

数字:

>>> a = 21
>>> id(a)
1382081616
>>> a += 1
>>> id(a)
1382081632

字符串:

>>> q = hello
>>> id(q)
36322528
>>> q +=  world
>>> q
hello world
>>> id(q)
36356848

 >>> q = ‘hello‘
  >>> w = q.replace(‘h‘,‘H‘)
  >>> q
 ‘hello‘
 >>> w
 ‘Hello‘

当我们调用q.replace(‘h‘, ‘H‘)时,实际上调用方法replace是作用在字符串对象‘hello‘上的,而这个方法虽然名字叫replace,但却没有改变字符串‘hello‘的内容。相反,replace方法创建了一个新字符串‘Hello‘并返回,如果我们用变量w指向该新字符串,就容易理解了,变量q仍指向原有的字符串‘hello‘,但变量w却指向新字符串‘Hello‘了.

元祖不可以修改--前边已经说过

>>> t = (1,2)
>>> t(0) = 5
  File "<stdin>", line 1
SyntaxError: cant assign to function call

 

python----基础之可变、不可变数据类型与hash

原文:https://www.cnblogs.com/cnike/p/10438453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!