list 和 tuple
在python 中list和tuple的最大的区别要分清:list是有序可变的列表,tuple是有序不可变的,一旦初始化就不能改变。
先来看一个实例:
# 指向不变性
my_tuple = ('a', 'b', 'c', ['x', 'y','z'])
# 打印tuple
print(r'my_tuple = ', end='')
print(my_tuple)
print('my_tuple[0] = ' + my_tuple[0])
print('my_tuple[1] = ' + my_tuple[1])
print('my_tuple[2] = ' + my_tuple[2])
print(r'my_tuple[3] = ', end='')
print( my_tuple[3])
print('修改前:my_tuple[3][0] = '+ my_tuple[3][0])
my_tuple[3][0] = 'A'
print('修改后:my_tuple[3][0] = '+ my_tuple[3][0])
# 打印tuple
print(r'my_tuple = ', end='')
print(my_tuple)
运行结果:
my_tuple = ('a', 'b', 'c', ['x', 'y', 'z'])
my_tuple[0] = a
my_tuple[1] = b
my_tuple[2] = c
my_tuple[3] = ['x', 'y', 'z']
修改前:my_tuple[3][0] = x
修改后:my_tuple[3][0] = A
my_tuple = ('a', 'b', 'c', ['A', 'y', 'z'])
那这里为什么又可以发生改变了?
tuple的指向不变性:
例子中my_tuple[3] 指向的是一个list,而list是一个有序可变的列表。也就是说,my_tuple[3]的内部的元素值可以发生改变。tuple的有序不变,不变的是指向,例子中所指向的list还是原来的list。这样就造成了例子中tuple发生了改变。这就是tuple元组的指向不变性。
图示如下:
图示:tuple的指向不变性
更多了解,可关注微信公众号:人人懂编程
微信公众号:人人懂编程
网友评论