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 吗?

4

2 回答 2

4
[(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))
于 2012-10-08T23:45:31.040 回答
1

它作为序列的产品工作:

>>> [(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)]
于 2012-10-08T23:45:35.533 回答