Python嵌套列表推导式及双层for循环填充问题咨询
问题解答
1. 理解X = [[0 for i in range(6)] for j in range(6)]中的0
这是Python的列表推导式,用来快速生成二维列表,拆成你熟悉的普通循环逻辑就好懂:
- 内层的
[0 for i in range(6)]:循环6次,每次往列表里添加一个0,最终生成一个包含6个0的一维列表[0, 0, 0, 0, 0, 0]。这里的0就是每个元素的初始值,换成其他值(比如1、i),生成的列表元素会对应改变。 - 外层的
for j in range(6):循环6次,每次生成一个上述的内层列表,最终组合成6行6列的全0二维列表。
2. 双层循环内部的填充内容
得看你要实现的具体功能,最常见的是和上面列表推导式等价的「生成全0二维列表」,代码可以这么写:
X = [] # 先初始化空的外层列表 for i in range(6): inner_list = [] # 外层循环每次新建一个空内层列表 for j in range(6): inner_list.append(0) # 内层循环往列表里添加0 X.append(inner_list) # 把内层列表加入外层列表
如果是其他需求,比如生成元素为i+j的二维列表,内层就改成inner_list.append(i+j);要是只想打印循环索引,内层写print(f"行{i},列{j}")就行。
内容的提问来源于stack exchange,提问作者Jonasyou
相关产品推荐
相关产品推荐

