在python中,shape=(None,)+stat_dim
等于shape=(None, state_dim)
吗?
如果它们相同,为什么还要那样写呢?
谢谢
答案 0 :(得分:1)
不,他们不一样。
让我们尝试一些示例:
>>> stat_dim = (1, 2, 3)
>>> (None,) + stat_dim
(None, 1, 2, 3)
>>> (1, 2) + (3, 4)
(1, 2, 3, 4)
>>> shape = (None,) + stat_dim
>>> shape[2]
2
这将两个元组连接为一个元组。因此,您将获得一个4元素元组,它与3元素元组stat_dim
一样,但是在开始时带有额外的值None
。
>>> (None, stat_dim)
(None, (1, 2, 3))
>>> ((1, 2), (3, 4))
((1, 2), (3, 4)
这将创建一个包含两个元素的元组,其第一个元素为None
,第二个元素为stat_dim
元组。
因此,现在没有shape[2]
;只有shape[0]
和shape[1]
,然后shape[1]
有自己的元素:
>>> shape = (None, stat_dim)
>>> shape[2]
IndexError: tuple index out of range
>>> shape[1][2]
3