1. 程式人生 > >python筆記之孤單的元組

python筆記之孤單的元組

tor class 開放 增刪 為什麽 pri 分享 next() 使用

列表就是一個開放的大倉庫,可以放置任意東西,並能增刪改查。

但元組就是一個封閉的倉庫,一旦定義就不能改變(不能增刪改)。

若真想"改變"元組,也不是沒有辦法滴:

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筆記之孤單的元組