2019-06-01 14:36:34
用交互式輸入:
>>> yz=(1) >>> yz 1
>>> yz1=(1,)
>>> yz1
(1,)
發現沒有以逗號結尾也可以創建並輸出不過前者輸出是整數1,后者輸出是元組(1,)。難道前者沒有創建一個元組嗎?我們來檢查上面兩個“元組”得到類型:
>>> type(yz) <class 'int'> >>> type(yz1) <class 'tuple'>
這回我們發現前者yz只是一個整型變量,而后者yz1才是一個元組。這是因為符號()是一個運算符,當括號中只有數字時並不會創建一個元組。而且元組之間可以進行加法運算(僅此而且)如
>>> yz=(1) >>> yz1=(1,) >>> yz2=(1,2) >>> yz+yz2 Traceback (most recent call last): File "<pyshell#89>", line 1, in <module> yz+yz2 TypeError: unsupported operand type(s) for +: 'int' and 'tuple' >>> yz1+yz2 (1, 1, 2)
從錯誤類型中我們也可以看出yz是一個整型數據。
所以說創建的元組中只有一個元素時沒有加逗號就無法創建為元組,而為其他變量,如:
>>> x=([1]) >>> type(x) <class 'list'> >>> y=([1],) >>> type(y) <class 'tuple'> >>> type(y[0]) <class 'list'> >>> z=({'man':'men'}) >>> z {'man': 'men'} >>> type(z) <class 'dict'> >>> z=({'man':'men'},) >>> type(z) <class 'tuple'> >>> z ({'man': 'men'},) >>> z[0] {'man': 'men'} >>> z[0][0] Traceback (most recent call last): File "<pyshell#116>", line 1, in <module> z[0][0] KeyError: 0 >>> z[0]['man'] 'men' >>> type(z['man']) <class 'str'> >>> z['man'] men