这里有一个 Python 3 学习者:
该问题有以下公认的答案:
rr,tt = zip(*[(i*10, i*12) for i in xrange(4)])
它返回两个元组。如果有人能分解答案并解释它对 Python 3 的作用,我将不胜感激(我知道 Python 3 中的range()
返回迭代器)。我理解列表推导,但我对拆包感到困惑(我认为您只能使用星号表达式作为分配目标的一部分)。
我对下面的代码同样感到困惑。我理解结果和压缩(或认为我知道),但星号表达式再次让我打败了。
x2, y2 = zip(*zip(x, y))
从此:_
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True