python筆記之孤單的元組
阿新 • • 發佈:2017-10-19
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筆記之孤單的元組