Python开发(人工智能/大数据/机器学习)

8.Python编程:tuple的指向不变性

2018-03-25  本文已影响5人  TensorFlow开发者

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的指向不变性

更多了解,可关注微信公众号:人人懂编程


微信公众号:人人懂编程
上一篇下一篇

猜你喜欢

热点阅读