2.7
对于只有一个数的元组就会报错
>>> a = (5)
>>> a[0]
Runtime error
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: 'int' object has no attribute '__getitem__'
>>>
对于多个数的元组就没问题
>>> a = (1,5)
>>> a[0]
1
2.7
对于只有一个数的元组就会报错
>>> a = (5)
>>> a[0]
Runtime error
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: 'int' object has no attribute '__getitem__'
>>>
对于多个数的元组就没问题
>>> a = (1,5)
>>> a[0]
1
在python
中,如果元组里面只有一个元素,那么python
会认为你只是在一个普通括号中输入了一个值,它会默认这是字符串,你可以print
打印查看一下
括号里面有多个元素才表示为元组,那么只有一个元素的元组怎么表示呢?可以写成:a = (5, )
如果你这么定义:
a = (5)
你定义的不是tuple,而是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,如果你要定义只有1个元素的tuple时,必须加一个逗号,,来消除歧义:
a = (5,)
另外,Python在显示只有1个元素的tuple时,也会加一个逗号“,”,以免你误解成数学计算意义上的括号。
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
楼上都没有说到重点,重点是python的元组是以逗号分隔的,括号并不表示元组.
http://blog.csdn.net/topdogs/...