haoge404407 发表于 2020-4-16 20:26:35

python

求大佬帮助:
为啥 matrix=[,,]
result=[]
for i in range(len(matrix)):
        result.append( for row in matrix)


想问的问题是len(matrix(0))不就是4吗?为啥不直接写成range(4),但是我发现写成range(4)后,就会发生意想不到的bug,会跳出编码,这是为什么?求大佬帮助。

zltzlt 发表于 2020-4-16 20:28:26

是语法错误吧,第 4 行漏了个中括号。。把 len(matrix) 改为 4 是可以的:

matrix = [, , ]
result = []
for i in range(4):
    result.append( for row in matrix])
print(result)

haoge404407 发表于 2020-4-16 20:29:58

zltzlt 发表于 2020-4-16 20:28
是语法错误吧,第 4 行漏了个中括号。。把 len(matrix) 改为 4 是可以的:

这个好像我漏打了,但不是这个问题。

zltzlt 发表于 2020-4-16 20:30:20

haoge404407 发表于 2020-4-16 20:29
这个好像我漏打了,但不是这个问题。

具体的错误是什么?我这里看着没问题

haoge404407 发表于 2020-4-16 20:39:46

zltzlt 发表于 2020-4-16 20:30
具体的错误是什么?我这里看着没问题

如果写成这样就是这样子
>>> for i in range(4):
        result.append( for row in matrix])
        print()


>>> result
[<zip object at 0x01C69F28>, <zip object at 0x01C696C8>, <zip object at 0x01C697A8>, , , , , , , , ]

但如果是这样子
就没有编码了
>>> for i in range(len(matrix)):
        result.append( for row in matrix])
       
>>> result
[, , , ]
没有前面那串编码,所以很奇怪

zltzlt 发表于 2020-4-16 20:40:32

haoge404407 发表于 2020-4-16 20:39
如果写成这样就是这样子

[, , , , , , , ,

这根本不是编码问题,先执行 result = [] 再执行第一段代码看看

haoge404407 发表于 2020-4-16 20:45:22

zltzlt 发表于 2020-4-16 20:40
这根本不是编码问题,先执行 result = [] 再执行第一段代码看看

对,对对

zltzlt 发表于 2020-4-16 20:45:59

haoge404407 发表于 2020-4-16 20:45
对,对对

看打印的内容应该是你的 result 之前存储过别的值,不记得将它清空了了
页: [1]
查看完整版本: python