这个理解列表怎么解释

how is die Interpretation of this comprehension list

如何理解这一行?

O = [[[-1 for i in range(int(o[0][1]))] for k in range(int(i[0]))] for i in o]

最简单的方法是从外到内:

  • 设置O等于...
  • 一个数组,对于可迭代对象 o 中的每个元素 i,...
  • 一个数组,对于 range(0,int(i[0])) 中的每个元素 k,...
  • range(0, int(o[0][1])) 中的每个元素 i 组成的数组,...
  • -1.

所以它看起来像一个数组的数组;看起来像:

 [[[-1, -1, -1], [-1, -1, -1, -1], [], [-1, -1]]]

顺便说一下,您需要更改一些变量名称。 oO 不应用作单字母变量,因为它们与 0 相似,并且您有两个嵌套的 for 循环都在使用(并因此覆盖) i 作为他们的迭代器。

how could I transform this comprehension list into basic for loops?

您的列表理解基本上是三个 for 循环合二为一。你可以这样翻译:

O = []
for i in o:
   O1 = []
   for k in range(int(i[0])):
       O2 = []
       for j in range(int(i[0][1])):
           O2.append(-1)
       O1.append(O2)
   O.append(O1)