“a”中的[x]是什么;函数()[x]";用Python?

“a”中的[x]是什么;函数()[x]";用Python?,python,function,Python,Function,我只想知道[x]在函数中的含义(一般来说,不是关于我将要展示的代码),我一直认为它是一个列表,但对它却一无所知 我将展示两个使用它的代码,第一个是使用PyTorch库(卷积): 简短的一点: x.size()[0] assert env.unwrapped.get_action_meanings()[1] == 'FIRE' 长的一个: def forward(self, x): conv_out = self.conv(x).view(x.size()[0], -1)

我只想知道[x]在函数中的含义(一般来说,不是关于我将要展示的代码),我一直认为它是一个列表,但对它却一无所知

我将展示两个使用它的代码,第一个是使用PyTorch库(卷积):

  • 简短的一点:

    x.size()[0]
    
        assert env.unwrapped.get_action_meanings()[1] == 'FIRE'
    
    长的一个:

    def forward(self, x):
        conv_out = self.conv(x).view(x.size()[0], -1)
        return self.fc(conv_out)
    
        def __init__(self, env=None):
            """For environments where the user need to press FIRE for the game to start."""
            super(FireResetEnv, self).__init__(env)
            assert env.unwrapped.get_action_meanings()[1] == 'FIRE'
            assert len(env.unwrapped.get_action_meanings()) >= 3
    
  • 第二个是为RL使用健身房库,但也是上面代码的一部分:

  • 简短的一点:

    x.size()[0]
    
        assert env.unwrapped.get_action_meanings()[1] == 'FIRE'
    
    长的一个:

    def forward(self, x):
        conv_out = self.conv(x).view(x.size()[0], -1)
        return self.fc(conv_out)
    
        def __init__(self, env=None):
            """For environments where the user need to press FIRE for the game to start."""
            super(FireResetEnv, self).__init__(env)
            assert env.unwrapped.get_action_meanings()[1] == 'FIRE'
            assert len(env.unwrapped.get_action_meanings()) >= 3
    
    我不想知道他们为什么使用
    函数()[x]
    ,我只想知道一般情况下
    [x]
    是什么


    感谢您的回答。

    []
    是Python中的索引操作符

    如果您有一个列表或元组
    l
    l[n]
    表示它的第
    n
    个元素

    如果有字典d,
    d[x]
    表示键为
    x
    的元素

    如果您有一个字符串
    s
    ,则s[n]
    表示字符串中的第n个字符

    其他一些数据类型定义了自己的索引函数,但它们通常实现了相同的想法,可能会对其进行扩展(Numpy数组允许您使用元组执行多维索引和切片)

    如果在函数调用后放置
    [x]
    ,它将对函数返回的任何内容执行索引

    y = function()[x]
    
    相当于

    temp = function()
    y = temp[x]
    

    您描述的几种输入类型之后的[x]只是一个索引引用。它可以应用于列表、元组或dict,具体取决于您如何使用它们。例如:

    z = np.zeros((2, 3)) #Creates a numpy array of zeros with size (2, 3)
    print(z.size()) #Outputs (2, 3)
    print(z.size()[0]) #outputs the 0th index of the tuple
    print(z.size()[2]) #Returns index error as it is out of range
    
    同样的情况也适用于列表和dict,但会带来各种各样的问题。大多数情况下,对于函数,只有当您知道返回值的格式并且只需要返回值的一部分时,才使用该函数

    希望这有帮助。

    x.size()
    显然返回一个列表(数组),并且
    [0]
    索引第一个元素。类似的逻辑也适用于其他例子。