有人可以解释一下这段代码的确切含义:
for i,j in [(i,j) for i in range(len(rows)-2,-1,-1) for (j) in range(i+1)]:
当有一个称为行的数组时。分配给 i 和 j 的是什么?
我相信我将成为数组的第 n-1 个索引,但我不确定 j。只是 i+1 吗?
有人可以解释一下这段代码的确切含义:
for i,j in [(i,j) for i in range(len(rows)-2,-1,-1) for (j) in range(i+1)]:
当有一个称为行的数组时。分配给 i 和 j 的是什么?
我相信我将成为数组的第 n-1 个索引,但我不确定 j。只是 i+1 吗?
[(i,j) for i in range(len(rows)-2,-1,-1) for (j) in range(i+1)]
是相同的:
result = []
# from len(rows)-2 to 0, decrementing by one each time
for i in range(len(rows)-2,-1,-1):
# from 0 to i
for j in range(i+1):
result.append((i, j))
它作为序列的产品工作:
>>> [(i, j) for i in [1, 2] for j in ['a', 'b']]
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
这类似于:
from itertools import product
print [(i, j) for i, j in product(list1, list2)]