还有一个微妙的地方要注意,就是只有一个元素的元组,在格式上与列表是不同的。仅一个元素 x 的列表写成 [x]
, 但仅一个元素的元组要在括号内多写个逗号:(x,)
。
这是因为 Python 中,圆括号承担的语法功能太多了,可以用来表示元组,也可以用于当数学运算中的小括号。(x)
这样的写法,Python 会优先理解成数学运算的小括号,所以光秃秃的 (x)
对 Python 来说就是一个套了个小括号的数学运算表达式。我们来看看代码:
single = (1) print(type(single)) # 输出:<class 'int'>
可见,上面的 (single)
和 single
一样,都是整数。
对于仅一个元素的元组,我们要特意加个逗号来声明:这是个元组。
single = (1,)
print(type(single))
# 输出:<class 'tuple'>
tuple是元祖的意思喔。