通过阅读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]?
len(values[s]) == 1
d2 = values[s]
关于在作业中使用下划线的另一个问题是:
_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
下划线是否具有基本上丢弃列表中返回的第一个值的效果?
d2, = values[s]就像一样a,b=f(),除了解包1个元素元组。
d2, = values[s]
a,b=f()
>>> T=(1,) >>> a=T >>> a (1,) >>> b,=T >>> b 1 >>>
a是元组,b是整数。
a
b