|
|
|
|
移动端

2.2.7 可变与不可变类型

《自学Python:编程基础、科学计算及数据分析》第2章Python 基础,在本章中,我们将学习Python 语言的基本使用,掌握Python 的基本使用方法,为后续的学习打下基础。本节为大家介绍可变与不可变类型。

作者:李金来源:机械工业出版社|2018-05-03 17:12

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.2.7 可变与不可变类型

按照创建后是否可以改变,Python中的对象可以分成两类:可变类型和不可变类型。

可变类型(Mutable Type)可以通过一些操作来改变自身的值。

例如,列表是一种可变类型,我们可以通过索引改变它的值:

  1. In [1]: a = [1, 2, 3, 4]   
  2. In [2]: a[0] = 100   
  3. In [3]: a   
  4. Out[3]: [100, 2, 3, 4] 

通过调用方法改变它的值:

  1. In [4]: a.append(5)   
  2. In [5]: a   
  3. Out[5]: [100, 2, 3, 4, 5] 

通过 del关键字改变它的值:

  1. In [6]: del a[0]   
  2. In [7]: a   
  3. Out[7]: [2, 3, 4, 5] 

不可变类型(Immutable Type)不能通过这些操作来改变它的值。

例如,字符串是一种不可变类型,不能通过索引来改变它的值:

  1. In [8]: s = "hello world"   
  2. In [9]: s[0] = 'z'   
  3.  
  4. TypeError   Traceback (most recent call last)   
  5. <ipython-input-9-83b06971f05e> in <module>()   
  6. ----> 1 s[0] = 'z'   
  7.  
  8. TypeError: 'str' object does not support item assignment 

调用字符串的方法会返回一个新的字符串,并不改变原来的值。

可以用重新赋值的方法改变 s的值:

  1. In [10]: ss = s.replace('world', 'Mars')   
  2. In [11]: s   
  3. Out[11]: 'hello Mars' 

对变量 s重新赋值,Python会创建一个新的字符串,原来的字符串并没有被修改,因此,这不违反字符串不可变的性质。

我们可以将 Python中的数据类型大致分为两类:

不可变类型:整数、浮点数、长整数、复数、字符串、元组、不可变集合;

可变类型:列表、字典、集合、NumPy数组、自定义类型;

Python中的数字和字符串都是不可变类型;常用的容器类型列表、字典、集合等都是可变的;元组和不可变集合相当于对列表和集合的一种不可变实现。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL Server 2005实现与维护(MCTS教程)

本书是微软认证技术专家(MCTS) 70-431考试的专用教材,全书共21章,围绕着考查目标,通过详尽的描述、大量课程和课后测试,全面介绍了SQL S...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊