这是什么语法?

(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 - 扩展迭代解包

以上是这是什么语法?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>