在Python赋值运算符中使用逗号和下划线的意义?
通读彼得·诺维格的著作,我遇到了一些我以前从未见过的Python习语 我知道函数可以返回一个元组/值列表,在这种情况下,可以为结果分配多个变量,例如在Python赋值运算符中使用逗号和下划线的意义?,python,syntax,iterable-unpacking,Python,Syntax,Iterable Unpacking,通读彼得·诺维格的著作,我遇到了一些我以前从未见过的Python习语 我知道函数可以返回一个元组/值列表,在这种情况下,可以为结果分配多个变量,例如 def(): 返回1,2 a、 b=f() 但以下每一项的含义是什么 d2, = values[s] ## values[s] is a string and at this point len(values[s]) is 1 如果len(values[s])==1,那么此语句与d2=values[s]有何不同 关于在作业中使用下划线的另一个
def():
返回1,2
a、 b=f()
但以下每一项的含义是什么
d2, = values[s] ## values[s] is a string and at this point len(values[s]) is 1
如果len(values[s])==1
,那么此语句与d2=values[s]
有何不同
关于在作业中使用下划线的另一个问题:
_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
下划线是否具有基本上丢弃列表中返回的第一个值的效果?
与任何其他变量名类似,但通常表示“我不关心此变量”
第二个问题:它是“价值解包”。当函数返回元组时,可以解压缩其元素
>>> x=("v1", "v2")
>>> a,b = x
>>> print a,b
v1 v2
d2,=values[s]
与a,b=f()
类似,只是不打包1个元素元组
>>> T=(1,)
>>> a=T
>>> a
(1,)
>>> b,=T
>>> b
1
>>>
a
是元组,b
是整数。Python shell中的uu也指最后一个操作的值。因此
>>> 1
1
>>> _
1
逗号表示元组解包。返回值是一个元组,因此按照元组元素的顺序将其解包到由逗号分隔的变量中。您可以在元组中使用尾随逗号,如下所示:
>>> x=("v1", "v2")
>>> a,b = x
>>> print a,b
v1 v2
>>> (2,)*2
(2, 2)
>>> (2)*2
4
是的,但在上面给出的上下文中,它是一个“不在乎”变量。那么'b,=t'表示从该元组中获取第一个元素?它是否与“b=T[0]”同义?我需要更多的例子或更少的冗长解释^^是的,这是相同的结果