我是Python编程的新手。在此Python代码中,首先将a
视为我们在 C 中称为一维数组。但是,在中间,它会将其视为2D阵列!
n=int(input("Enter number of rows: "))
a=[]
for i in range(n):
a.append([])
a[i].append(1)
for j in range(1,i):
a[i].append(a[i-1][j-1]+a[i-1][j]) #this line
if(n!=0):
a[i].append(1)
for i in range(n):
print(" "*(n-i),end=" ",sep=" ")
for j in range(0,i+1):
print('{0:6}'.format(a[i][j]),end=" ",sep=" ")
print()
我没有这个主意。谁能解释我在#this line
(第7行)中注释的行中发生的情况?谢谢。
答案 0 :(得分:3)
Python是动态类型的,因此这是可能的。数组(在python中称为列表)可以包含多个列表和值。
a=[1,"a",["abc",10]]
# Here you get the "abc" by calling
print(a[2][0])
在您的示例中,在此处添加一个列表:
n=int(input("Enter number of rows: "))
a=[]
for i in range(n):
a.append([]) # <---- insert a list into the list
上面的最后一行使列表a
成为2D列表。
如果您来自C,您可能会对链接列表的实现很熟悉,这些链接列表被实现为在每个节点中包含一个void *
值。这与将节点的值分配给另一个链表的头部相同。