我如何理解这一行?
O = [[[-1 for i in range(int(o[0][1]))] for k in range(int(i[0]))] for i in o]
答案 0 :(得分:0)
最简单的方法是从外面进行:
O
设为等于... i
中的每个元素o
组成,...... k
中的每个元素range(0,int(i[0]))
组成,...... i
中的每个元素range(0, int(o[0][1]))
组成,...... 所以它看起来像一个数组数组;看起来像:
[[[-1, -1, -1], [-1, -1, -1, -1], [], [-1, -1]]]
顺便说一下,你想要改变一些变量名。 o
和O
不应该用作与0
相似的单字母变量,并且您有两个嵌套for
循环,它们都使用(因此覆盖) i
作为迭代器。
答案 1 :(得分:0)
我怎样才能将这个理解列表转换为基本的for循环?
你的列表理解基本上是三个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)