奇怪的循环

时间:2013-12-30 05:47:10

标签: python for-loop

我熟悉基本级别的for循环。我经常在学校使用它们,但我只是遇到了一个我不理解的网上。我想知道是否有人可以向我解释这是什么类型的循环,或者你甚至可以告诉我它是什么类型的循环。我愿意自己研究它,但我找不到任何东西。循环在下面,可以找到here

for i,j in [(i,j) for i in range(len(rows)-2,-1,-1) for j in range(i+1)]:
    rows[i][j] +=  max([rows[i+1][j],rows[i+1][j+1]])

2 个答案:

答案 0 :(得分:2)

这是对列表理解的循环。它可以大致翻译为:

temp = []
for i in range(len(rows) - 2, -1, -1):
    for j in range(i + 1):
        temp.append((i, j))
for (i, j) in temp:
    rows[i][j] += max([rows[i + 1][j], rows[i + 1][j + 1]])

或者,更直接地说:

for i in range(len(rows) - 2, -1, -1):
    for j in range(i + 1):
        rows[i][j] += max([rows[i + 1][j], rows[i + 1][j + 1]])

答案 1 :(得分:0)

[ ... ]中的部分称为List Comprehension,它会产生List

不要认为这段代码是好代码,它不是可维护代码的好例子。