从语法上讲,这两条语句在python中如何返回相同的值?

从语法上讲,这两条语句在python中如何返回相同的值?,python,Python,从语法上讲,这两个语句如何返回相同的值 x ,= range(1) print(x) # prints 0 (x,) = range(1) print(x) # here also prints 0 请勾选此项,例如: v1 = 1, v2 = (1,) type(v1) # outputs <type 'tuple'> type(v2) # outputs <type 'tuple'> v1=1, v2=(1,) 类型(v1)#输出 类型(v2)#输出

从语法上讲,这两个语句如何返回相同的值

x ,= range(1)
print(x) # prints 0

(x,) = range(1)
print(x) # here also prints 0

请勾选此项,例如:

v1 = 1,
v2 = (1,)

type(v1)  # outputs <type 'tuple'>
type(v2)  # outputs <type 'tuple'> 
v1=1,
v2=(1,)
类型(v1)#输出
类型(v2)#输出
逗号从表达式生成元组,而括号只是可选的。

两者都是元组,()可选

In [29]: a=x,

In [30]: b=(x,)

In [32]: type(a)
Out[32]: tuple

In [33]: type(b)
Out[33]: tuple

In [34]: 
让我们说如果你在逗号后加上y,并使范围(2) 然后,它解压这两个值并分别分配给x和y

In [36]: x,y=range(2)

In [37]: x,y
Out[37]: (0, 1)

In [38]: (x,y)=range(2)

In [39]: x,y
Out[39]: (0, 1)

工作中有两种操作:

  • 元组结构
  • 序列解包
  • 如前所述,逗号使变量成为
    元组
    。这两种情况都是如此

    此外,这些是序列解包的示例。换句话说,
    范围(1)
    的元素被解包并归属于
    元组的元素,在这种情况下,
    (x,)


    由于这些是长度为1的元组,因此从
    范围(1)
    解包的单个元素,即0,被分配给
    x

    x,以及(x,)它在内部的处理方式?是逗号构成元组,括号在大多数情况下是可选的。括号符号是可选的。