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