python笔记之孤单的元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python笔记之孤单的元组相关的知识,希望对你有一定的参考价值。

列表就是一个开放的大仓库,可以放置任意东西,并能增删改查。

但元组就是一个封闭的仓库,一旦定义就不能改变(不能增删改)。

若真想"改变"元组,也不是没有办法滴:

1 >>> tuple1 = (1, 2, 4, 5)
2 
3 >>> tuple1 = tuple1[:2] + (3,) + tuple1[2:]
4 
5 >>> print(tuple1)
6 (1, 2, 3, 4, 5)

咋一看,不是可以更改吗?!No!No!No!先上代码:

 1 >>> tuple1 = (1, 2, 4, 5)
 2 
 3 >>> print(id(tuple1))   #使用id()查看变量的内存地址。
 4 31366184
 5 
 6 >>> tuple1 = tuple1[:2] + (3,) + tuple1[2:]
 7 
 8 >>> print(id(tuple1))   #两次的tuple1的内存地址不相同,这下看官明白了没?
 9 60659496
10 
11 >>> print(tuple1)
12 (1, 2, 3, 4, 5)

 

再说说为什么称元组孤单呢?

技术分享

这些都是列表的方法,只有红框中的count()跟index()是元组适用的。

 

另外列表有列表推导式,而元组是没有元组推导式,但是它却能创造出生成器。我在这里只能说一声元组真是悲哀啊:

元组啊,元组啊,你能创造个生成器,但却不是姓元组的,看来你注定孤独一生了。

>>> tuple2 = (x**2 for x in range(10))
#tuple2的类型是一个生成器(generator)
>>> type(tuple2)
#不能直接像元组那样打印元素了。
<class generator>
>>> print(tuple2)
<generator object <genexpr> at 0x000000000308BEB8>

#若想看里面的元素只能通过next()或__next__()方法
>>> next(tuple2)
0
>>> next(tuple2)
1
>>> next(tuple2)
4
>>> next(tuple2)
9
>>> next(tuple2)
16
>>> next(tuple2)
25
>>> next(tuple2)
36
>>> next(tuple2)
49
>>> next(tuple2)
64
>>> next(tuple2)
81

 

以上是关于python笔记之孤单的元组的主要内容,如果未能解决你的问题,请参考以下文章

Python基础教程笔记十三:元组

详解Python的元组(tuple)的12种操作方法,并附示例代码

python笔记--元组

Python基础笔记-元祖

Python3 元组

Python的元组列表截取