Python学习笔记(6)-tuple用法

  • tuple:是另一种有序的列表,中文翻译为“元组”。tuple和list非常类似,但是tuple一旦创建完毕,就不能修改了。

Python之创建tuple:

      创建tuple和创建list唯一不同之处就是用()替代了[ ] 。如下代码所示创建一个tuple:

t = ('Adam','Lisa','Bart')

      访问方法与前文提到的list相同,只是tuple不支持append()、insert()、pop()方法。 

Python之创建单元素tuple:

      如果按照我们直接的思路,创建单元素tuple的代码如下:

t= (1)
print t

      这时候输出:

      问题来了,输出的根本就不是tuple,而是整数1。这是因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果(1)被Python解释器计算出结果1,导致得到的不是tuple,而是整数1。

      为了避免歧义,单元素tuple中要多加一个逗号“,”:

t=(1,)
print t

      此时输出的就是单个元素的tuple:

 tuple之“可变”的tuple:

      前面我们看到了tuple一旦创建就不能修改,但是若为这样的情况,就变成了一个可变的tuple

t = ('a','b',['A','B'])

      注意到t有三个元素:‘a’,‘b’和一个list :[‘A’,‘B’] 。list作为一个整体是tuple的第3个元素。list对象可以通过t [2]拿到:L=t[2]。然后,我们把list的两个元素改一改:

t= ('a','b',['A','B'])
L=t[2]
L[0]='X'
L[1]='Y'
print t

      重新运行,与之前的结果对比:

      tuple的内容看起来好像改变了。但是,其实改变的不是tuple的元素,而是list的元素。如下图为改变前的指向:

      如下图为改变后的指向:

      tuple一开始指向的list并没有改成别的list。所以,list所谓的“不变”是说,tuple的每个元素,指向永远不变。指向一个list,就不能指向其他对象,但指向的这个list本身是可变的! 

猜你喜欢

转载自blog.csdn.net/wynlnlhhjy/article/details/81317790