好吧所以我已经用Google搜索了好几天了,仍然无法理解“for list in list”循环的想法!我一直在做Codecademy的Python课程和一次练习我想让我打印一个5x5的“O”板。现在我成功地做到了,但我仍然不知道如何!我会告诉你我做的代码和结果。 我写的代码是:
board = []
for i in range(0, 5):
board.append(["O"] * 5)
def print_board(board):
for row in board:
print row
print_board(board)
正如您所看到的,代码的目标是获得我所做的结果:
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
有人可以向我解释一下“for row in board”循环和“for i in range(0,5)”循环是如何产生这种结果的?谢谢!
答案 0 :(得分:4)
一般语法为for item in iterator
这意味着,循环的每次迭代,变量item
都将包含iterator
中的下一个项目。
例如:
lst = [1,2,3,4,5]
for number in lst:
print number #number is 1 then 2 then 3... every iteration its different according to lst
# output:
1
2
3
4
5
好的...现在range()
是一个非常好的功能,可让您轻松迭代数字
它可以获得开始,结束,步骤并返回一个数字列表,这些数字是您要求的所有数字。例如,range(1, 11, 2)
将返回[1, 3, 5, 7, 9]
(包含11 不)
答案 1 :(得分:0)
for i in range(0, 5):
board.append(["O"] * 5)
此处,您要将['O', 'O', 'O', 'O', 'O']
(["0"]
重复五次)附加到名为board
的列表中五次。请注意,此整个列表会立即附加,如果您添加更多此类列表,board
将列表列表,因此在每个有效索引处都可以找到列表。
for row in board:
print row
这会迭代board
的所有条目,这些条目再次包含 of lists 。
这就是为什么你得到五个列表的原因,每个列表包含五个字母' 0' 。