这是什么语法?
(x_train, y_train), (x_test, y_test) = mnist.load_data()
这是 tensorflow 示例,但我不明白这意味着什么我知道 x_train、y_train、x_test、y_test 的目的,但我想知道它们是如何分配的。这是一种什么样的机制。谢谢
回答
这称为元组或可迭代解包。mnist.load_data()
必须返回两个二元组的序列:
>>> (x_train, y_train), (x_test, y_test) = [(1,2),(3,4)]
>>> x_train
1
>>> y_train
2
>>> x_test
3
>>> y_test
4
它可用于解包嵌套序列:
>>> a,b,c = 1,2,3 # a=1,b=2,c=3
>>> (a,b),c = (1,2),3 # same
用于*
对不同大小的序列进行操作:
>>> a,*b = 1,2,3,4,5
>>> a
1
>>> b
[2, 3, 4, 5]
>>> a,*b,c = 1,2,3,4,5
>>> a
1
>>> b
[2, 3, 4]
>>> c
5
参考::
- Python 文档 - 赋值语句
- PEP 3132 - 扩展迭代解包