为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能使用循环在列表中创建列表?

为什么我不能使用循环在列表中创建列表?

鸿蒙传说 2023-02-22 16:04:59
我有这段代码(对于 roomMap 的左墙):roomMap = []ones = [1] * 50for i in ones:    roomMap = roomMap + [[i]]    roomMap.append("\n")print(len(roomMap))print(roomMap)它应该打印5050[1]行,但它打印100然后重复[1], '\n'50 次。为什么会这样?
查看完整描述

4 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

干得好 :


roomMap = [1] * 50 # Here, the list is filled with 1

print(len(roomMap))

for i in roomMap:

    print(i)

print() 已经转到下一行。这个打印:


50

1

1

1

1 #etc..

如果你想要一个列表列表,只需添加括号


roomMap = [[1]] * 50 #Here, the list is filled with [1]

print(len(roomMap))

for i in roomMap:

    print(i)

这印


50

[1]

[1]

[1] #etc..


查看完整回答
反对 回复 2023-02-22
?
忽然笑

TA贡献1806条经验 获得超5个赞

尝试这个


roommap=[]

a=[[1]]*50

for i in a:

    roommap.append(i)

print(len(a))

print(*roommap,sep='\n')


查看完整回答
反对 回复 2023-02-22
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

它打印 100 并重复 [1], '\n' 50 次,因为您将“\n”附加到 roomMap。

您所做的是将 [1] 和“\n”都附加到列表“roomMap”中。因此,对于每一次迭代,您都将 2 个元素([1] 和“\n”)推送到列表中。列表不是字符串,因此您不需要附加空白字符。


查看完整回答
反对 回复 2023-02-22
?
Helenr

TA贡献1780条经验 获得超3个赞

尝试使用:


roomMap = []

ones = [1] * 50

for i in ones:

    roomMap = roomMap + [[i]]

print(len(roomMap))

for i in roomMap:

    print(i)


查看完整回答
反对 回复 2023-02-22
  • 4 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信