我已查看过该文档: https://docs.python.org/2/howto/functional.html?highlight=list%20comprehension
但我在理解列表理解逻辑方面遇到了麻烦。句法。为了构建相对于高度和宽度输入的网格值列表(逐行)(例如,4 x 6网格的零:
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
)
这个嵌套的for循环完成了这项工作:
h = 4
w = 6
grid_list = []
for row in xrange(h):
grid_list.append(list())
for col in xrange(w):
grid_list[row].append(0)
...我理解列表理解能够用两个listcomp语句做同样的事情:
h = 4
w = 6
grid = [[] for row in xrange(h)]
grid = [[0 for col in xrange(w)] for nested_row_list in grid]
但是,是否有单一的列表理解陈述可以完成整个构造?或者是grid_list.append(list())
扩展了for循环的范围,而不是列表理解可以做什么?
答案 0 :(得分:1)
好吧,你可以简单地做
grid = [[0 for col in xrange(w)] for row in xrange(h)]