python元组是由什么组成的?
以下代码没有打印我所期望的内容:python元组是由什么组成的?,python,tuples,Python,Tuples,以下代码没有打印我所期望的内容: #!/usr/bin/env python print type(1,) a = 1, print type(a) 以下是输出: <type 'int'> <type 'tuple'> 我知道逗号把一个数组变成了一个元组。但是如果是这样的话,为什么原始打印不是打印元组类型而是打印int呢?因为它没有括在括号中:类型((1,) 如果没有额外的括号,它将在此上下文中被视为一个简单的参数列表,后面的分号将被忽略。因为函数调用中的元组语
#!/usr/bin/env python
print type(1,)
a = 1,
print type(a)
以下是输出:
<type 'int'>
<type 'tuple'>
我知道逗号把一个数组变成了一个元组。但是如果是这样的话,为什么原始打印不是打印元组类型而是打印int呢?因为它没有括在括号中:
类型((1,)
如果没有额外的括号,它将在此上下文中被视为一个简单的参数列表,后面的分号将被忽略。因为函数调用中的元组语法也是传递参数的方式:
>>> print type(1,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type() takes 1 or 3 arguments
>>> print type((1,))
<type 'tuple'>
>>> a = 1,
>>> type(a)
<type 'tuple'>
都是相同的。type()
是一个函数,因此python解析器将把type
函数调用的括号之间的所有内容作为参数元组传递给该函数
因此,要将文本元组传递给函数调用,您始终需要向元组添加括号,以便解析器识别它:
print type((1,))
虽然这一点肯定是有争议的,但在参数列表中包含尾随逗号并不是语法错误的原因在于保持
(1,)
和元组(1,)
和[1,]
和列表(1,)
之间的一致性。
print type((1,))