需要帮助了解此Python列表语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要帮助了解此Python列表语法相关的知识,希望对你有一定的参考价值。

我在理解此语法在Python中的含义时遇到了麻烦:

out = out[lengths - 1, range(len(lengths))]

为什么列表内有范围?这是如何运作的?对于上下文,我正在PyTorch中训练机器学习模型。 lengths是输入长度的列表。

答案

我假设lengths是整数数组。 (可能是一个Numpy数组)

第一个索引lengths - 1将给出由-1减去的索引列表。第二个索引range(len(lengths))将给出从0到lengths大小的数字列表。

我不知道代码中的特定逻辑是什么,但是通常,您可以提供一个索引列表以在特定位置选择数据。

out = np.array([[1,2,3],[4,5,6],[7,8,9]])
-> array([[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]])

first_idx = [0, 1, 2]
second_idx = [2, 1, 0]
# (0,2), (1,1), (2,0)

out[first_idx, second_idx]
-> array([3, 5, 7])

以上是关于需要帮助了解此Python列表语法的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助了解为啥要从我的所有列表中删除数据

我需要帮助了解扩展初始化程序列表错误吗?

需要示例代码片段帮助

干货分享!python基础语法你了解吗?

13 个非常有用的 Python 代码片段

如何创建片段以重复变量编号中的代码行