我熟悉基本级别的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]])
答案 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
。
不要认为这段代码是好代码,它不是可维护代码的好例子。