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番目のインデックスになると思いますが、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 に答える