“对于列表中的项目”循环,需要说明

时间:2016-05-08 19:18:35

标签: python for-loop

好吧所以我已经用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)”循环是如何产生这种结果的?谢谢!

2 个答案:

答案 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'