小编典典

在Python赋值运算符中使用逗号和下划线的含义?

python

通过阅读Peter
Norvig的《解决每个数独难题》一文,我遇到了一些以前从未见过的Python习语。

我知道一个函数可以返回一个元组/值列表,在这种情况下,您可以将多个变量分配给结果,例如

def f():
    return 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)

下划线是否具有基本上丢弃列表中返回的第一个值的效果?


阅读 232

收藏
2020-12-20

共1个答案

小编典典

d2, = values[s]就像一样a,b=f(),除了解包1个元素元组。

>>> T=(1,)
>>> a=T
>>> a
(1,)
>>> b,=T
>>> b
1
>>>

a是元组,b是整数。

2020-12-20