python 以逗号差结尾的元组

python tuple ending with comma difference

有什么区别

("a")

("a",)

我注意到,例如 mysql 包装器参数格式不适用于第一种情况,它必须以逗号结尾。

cursorA.execute(query, (url,))

如果在括号()中只写一个元素,则括号()被忽略,不被认为是一个元组。

x = ("a")

print(type(x))

输出:str

要生成单元素元组,末尾需要一个逗号,

x = ("a", )

print(type(x))

输出:tuple

第一个将创建一个字符串,第二个将创建一个元组。这实际上就是在两个括号之间制作元组和字符串之间的区别。

当仅使用括号时,您并没有创建元组,因为解释器将其视为增加运算符优先级(就像数学中的括号),如果您使用逗号,解释器将理解我们正在尝试创建一个只有一个元素的元组,并且不增加优先级

下面的代码不是 “元组” 是:

x = ("a") # Is not Tuple

与下面的代码相同:

x = "a"

虽然下面的代码是 "元组":

("a",) # Is Tuple