Python学习笔记--理解元组的不可变

以下内容均为本人学习笔记,若有不当,欢迎指出

Python中的元组

上一篇讲了列表的性质 链接 ://TODO
其实列表和元组有很对相似的地方,唯一不同的地方就是元组是只读的

  • 切片访问元组元素
  • 比较操作

  • 由于元组不可变,所以并不支持append, extend,sort 等要修改自身的操作

  • 所有的多个对象,按逗号分隔的,其实都是元组

实现两个数的交换

x = 1                                                                           
y = 2                                                                           
print x, y                                                                      
x, y = y, x                                                                     
print x, y

执行结果:

1 2
2 1

其实 y, x 就是一个元组,通过这个 y, x 创建一个新的元组

  • 元组的不可变性
    元组的不可变指定是元组的id不可变,就是指该元组对象的子对象id 不变
    但是如果子对象是可变对象,子对象里面的元素都是可以修改的
a = ([1, 2, 3], (4, 5, 6))                                                      
print a                                                                         
a[0][0] = 99                                                                    
print a 

执行结果:

([1, 2, 3], (4, 5, 6))
([99, 2, 3], (4, 5, 6))

其实元组的应用也很明显,在很多时候,我们将数据作为参数传递,并不希望别的接口修改,就可以传一个元组类型,这样就安全了。

你可能感兴趣的:(python)