为啥我这个跑出来不是杨辉三角呢?
a=[*10]*10for i in range(10):
for j in range(i+1):
if j ==0 or j ==i:
a=1
print(a,end=' ')
else:
a=a+a
print(a,end=' ')
print() 本帖最后由 逃兵 于 2021-3-18 16:29 编辑
a= [*10 for i in range(10)]
for i in range(10):
for j in range(i+1):
if j ==0 or j ==i:
a=1
print(a,end=' ')
else:
a=a+a
print(a,end=' ')
print()
问题在于列表a,列表是不可哈希类型的数据,你直接*10的话,会导致二维列表公用一个id,任何一个列表改变所以列表都会改变
例如:
>>> a = [*10]*10
>>> a
[, , , , , , , , , ]
>>> a = 1
>>> a
[, , , , , , , , , ]
>>> 看了下一期视频就知道了。。。
本帖最后由 jackz007 于 2021-3-18 16:45 编辑
y = [ * i for i in range(1 , 11)]
for i in range(2 , 10):
for j in range(i - 1):
y = y + y
for i in range(10):
print(* y)
运行实况
D:\0002.Exercise\Python>python yh.py
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
D:\0002.Exercise\Python> jackz007 发表于 2021-3-18 16:40
运行实况
谢谢,搞定了,是生成的矩阵直接引用了
页:
[1]